STRING 0x140053364 'concrete2.png'
  XREF 0x140053221 FUNC 0x140056980 sub_140056980 lea     rdx, aConcrete2Png; "concrete2.png"
STRING 0x140053372 'concrete2_material.png'
  XREF 0x14005327a FUNC 0x140056980 sub_140056980 lea     rdx, aConcrete2Mater; "concrete2_material.png"
STRING 0x140275710 'bullethitbody01.wav'
  XREF 0x14013c156 FUNC 0x140139e90 sub_140139E90 lea     rdx, aBullethitbody0; "bullethitbody01.wav"
STRING 0x140275728 'bullethitbody02.wav'
  XREF 0x14013c16b FUNC 0x140139e90 sub_140139E90 lea     rdx, aBullethitbody0_0; "bullethitbody02.wav"
STRING 0x140275740 'bullethitmetal01.wav'
  XREF 0x14013c180 FUNC 0x140139e90 sub_140139E90 lea     rdx, aBullethitmetal; "bullethitmetal01.wav"
STRING 0x140275758 'bullethitmetal02.wav'
  XREF 0x14013c195 FUNC 0x140139e90 sub_140139E90 lea     rdx, aBullethitmetal_0; "bullethitmetal02.wav"
STRING 0x1402762a8 'asphalt2.png'
  XREF 0x1400532d3 FUNC 0x140056980 sub_140056980 lea     rdx, aAsphalt2Png; "asphalt2.png"
  XREF 0x140056a58 FUNC 0x140056980 sub_140056980 lea     rdx, aAsphalt2Png; "asphalt2.png"
STRING 0x1402762b8 'asphalt2_material.png'
  XREF 0x14005332c FUNC 0x140056980 sub_140056980 lea     rdx, aAsphalt2Materi; "asphalt2_material.png"
  XREF 0x140056ab1 FUNC 0x140056980 sub_140056980 lea     rdx, aAsphalt2Materi; "asphalt2_material.png"
STRING 0x140277050 'tex_material'
  XREF 0x14014b43a FUNC 0x14014b2a0 sub_14014B2A0 lea     rdx, aTexMaterial; "tex_material"
  XREF 0x14014b6a9 FUNC 0x14014b2a0 sub_14014B2A0 lea     rdx, aTexMaterial; "tex_material"
STRING 0x140277080 'tex_atlas_material'
  XREF 0x14014b485 FUNC 0x14014b2a0 sub_14014B2A0 lea     rdx, aTexAtlasMateri; "tex_atlas_material"
STRING 0x140277e10 'texturematerial/%s.png'
  XREF 0x1400e67ad FUNC 0x1400e65f0 sub_1400E65F0 lea     rdx, aTexturemateria; "texturematerial/%s.png"
STRING 0x1402f6460 '#version 330 core\n\nuniform sampler2D tex_color;\nuniform sampler2D tex_shadowmap;\nuniform sampler2D tex_material;\nuniform samplerCube tex_cubemap;\nuniform sampler2DArray tex_atlas_color;\nuniform sampler2DArray tex_atlas_material;\n\nuniform vec3 lightambient;\nuniform vec3 lightdiffuse;\n\nuniform vec2 ooresolution;\n\nuniform int isreflection;\nuniform vec3 planeposition;\nuniform vec3 planenormal;\n\nin vec3 texcoord;\nin vec3 lightvec;\nin vec3 viewvec;\nin vec3 normalvec;\nin vec3 wsposition;\n\nout vec4 glfragcolor;\n\n#define PI 3.1415926\n\nvec3 converttosrgb3f(vec3 linearcolor)\n  {\n  bvec3 cutoff=lessThan(linearcolor,vec3(0.0031308));\n  vec3 higher=vec3(1.055)*pow(linearcolor,vec3(1.0/2.4))-vec3(0.055);\n  vec3 lower=linearcolor*vec3(12.92);\n\n  return (mix(higher,lower,cutoff));\n  }\n\nvec3 converttolinear3f(vec3 srgbcolor)\n  {\n  bvec3 cutoff=lessThan(srgbcolor,vec3(0.04045));\n  vec3 higher=pow((srgbcolor+vec3(0.055))/vec3(1.055),vec3(2.4));\n  vec3 lower=srgbcolor/vec3(12.92);\n\n  return (mix(higher,lower,cutoff));\n  }\n\nvec3 fresnel_factor(in vec3 f0,in float product)\n  {\n  return mix(f0,vec3(1.0),pow(1.01-product,5.0));\n  }\n  \nfloat D_GGX(in float roughness,in float NdH)\n  {\n  float m=roughness*roughness;\n  float m2=m*m;\n  float d=(NdH*m2-NdH)*NdH+1.0;\n  \n  return m2/(PI*d*d);\n  }\n\nfloat G_schlick(in float roughness,in float NdV,in float NdL)\n  {\n  float k=roughness*roughness*0.5;\n  float V=NdV*(1.0-k)+k;\n  float L=NdL*(1.0-k)+k;\n  \n  return(0.25/(V*L));\n  }\n\nvec3 cooktorrance_specular(in float NdL,in float NdV,in float NdH,in vec3 specular,in float roughness)\n  {\n  float D=D_GGX(roughness,NdH);\n  float G=G_schlick(roughness,NdV,NdL);\n  float rim=1.0;//mix(1.0-roughness*0.0*0.9,1.0,NdV);\n\n  return((1.0/rim)*specular*G*D);\n  }\n  \nvec3 pbr(in vec3 albedo,in float metallic,in float roughness,float shadow,in vec3 viewnormal,in vec3 lightnormal,in vec3 halfnormal,in vec3 normal)\n  {\n  vec3 fres;\n  float NdL;\n  float NdV;\n  float NdH;\n  float HdV;\n  float g;\n  vec3 specfresnel;\n  vec3 specref;\n  vec3 diffref;\n  vec3 reflectnormal;\n  vec3 env;\n  vec3 color;\n\n  albedo=converttolinear3f(albedo);\n \n  fres=vec3(0.02);\n  fres=mix(fres,albedo,metallic);\n  \n  NdL=max(0.001,dot(normal,lightnormal));\n  NdV=max(0.001,dot(normal,viewnormal));\n  NdH=max(0.001,dot(normal,halfnormal));\n  HdV=max(0.001,dot(halfnormal,viewnormal));\n  \n  specfresnel=fresnel_factor(fres,HdV);\n  specref=cooktorrance_specular(NdL,NdV,NdH,specfresnel,roughness);\n  specref*=vec3(NdL);\n  \n  g=1.0-NdL;\n  g=pow(g,1.0+roughness*3.0);\n  g=1.0-g;\n  g*=(1.0-roughness*0.375);  \n  \n  diffref=(vec3(1.0)-specfresnel)*g;//(1.0/PI)*\n\n  reflectnormal=reflect(-viewnormal,normal);\n  reflectnormal.yz=-reflectnormal.yz;\n\n  specref*=lightdiffuse*shadow;\n  diffref*=lightdiffuse*shadow;\n  env=textureLod(tex_cubemap,reflectnormal,7.0).rgb;\n  \n  env=converttolinear3f(env);\n\n  diffref+=env*0.75;\n  diffref*=1.5;\n  \n  env=textureLod(tex_cubemap,reflectnormal,roughness*roughness*8.0).rgb;\n\n  env=converttolinear3f(env);\n  specfresnel=fresnel_factor(fres,NdV)*(1.0-roughness*0.5);\n\n  specref+=env*0.75*specfresnel;\n  \n  color=diffref*mix(albedo,vec3(0.0),metallic)+specref;\n  \n  color=converttosrgb3f(color);\n  \n  return(color);\n  }\n  \nvoid main()\n  {\n  int count;\n  vec3 lightnormal;\n  vec3 viewnormal;\n  vec3 halfnormal;\n  vec3 reflectvec;\n  vec4 color;\n  vec4 color2;\n  vec3 texcolor;\n  vec3 material;\n  vec4 normal;\n  vec3 position;\n  float scale,scale2;\n  float rho,k;\n  float height;\n  vec2 shadowmaptexcoord;\n  float shadow;\n  float occlusion;\n  float shine;\n  float specpow;\n  float dist;\n  float metallic;\n  float roughness;  \n  float overlayalpha;\n  \n  if (isreflection==1)\n    {\n    position=wsposition-planeposition;\n    if (dot(position,planenormal)<0.0)\n      discard;\n    }\n\n  shadowmaptexcoord=gl_FragCoord.xy*ooresolution;\n  shadow=texture(tex_shadowmap,shadowmaptexcoord).r;\n  occlusion=0.5;//texture(tex_shadowmap,shadowmaptexcoord).g;\n  if (isreflection==1)\n    {\n    shadow=0.5;\n    occlusion=0.5;\n    }\n\n  lightnormal=normalize(lightvec);\n  viewnormal=normalize(viewvec);\n  halfnormal=normalize(viewnormal+lightnormal);\n  \n  overlayalpha=texture(tex_atlas_color,texcoord).a;\n  //if (overlayalpha<0.5)\n  //  overlayalpha=0.0;\n  //else\n  //  overlayalpha=1.0;\n  //overlayalpha*=overlayalpha;\n\n  texcolor=texture(tex_color,texcoord.xy).rgb;\n  texcolor=mix(texcolor,texture(tex_atlas_color,texcoord).rgb,overlayalpha);\n  //texcolor=texcolor*vec3(1.0-overlayalpha)+texture(tex_atlas_color,texcoord).rgb;\n  normal.xyz=normalize(normalvec);\n  \n  material=converttolinear3f(texture(tex_material,texcoord.xy).rgb);\n  material=mix(material,texture(tex_atlas_material,texcoord).rgb,overlayalpha);\n  color.rgb=pbr(texcolor,material.r,material.g,shadow,viewnormal,lightnormal,halfnormal,normal.xyz);\n\n  color.a=1.0;\n\n  glfragcolor=color;\n  }'
  XREF 0x14014b2bd FUNC 0x14014b2a0 sub_14014B2A0 lea     r8, aVersion330Core_1; "#version 330 core\n\nuniform sampler2D "...
STRING 0x1402f7e60 '#version 330 core\n\nuniform sampler2DArray tex_color;\nuniform sampler2D tex_shadowmap;\nuniform sampler2DArray tex_material;\nuniform samplerCube tex_cubemap;\n\nuniform vec3 lightambient;\nuniform vec3 lightdiffuse;\n\nuniform vec2 ooresolution;\n\nuniform int isreflection;\nuniform vec3 planeposition;\nuniform vec3 planenormal;\n\nuniform int flags;\n\nin vec2 texcoord;\nflat in int texlevel;\nin vec3 lightvec;\nin vec3 viewvec;\nin vec3 normalvec;\nin vec3 wsposition;\n  \nout vec4 glfragcolor;\n\n#define PI 3.1415926\n\nvec3 converttosrgb3f(vec3 linearcolor)\n  {\n  bvec3 cutoff=lessThan(linearcolor,vec3(0.0031308));\n  vec3 higher=vec3(1.055)*pow(linearcolor,vec3(1.0/2.4))-vec3(0.055);\n  vec3 lower=linearcolor*vec3(12.92);\n\n  return (mix(higher,lower,cutoff));\n  }\n\nvec3 converttolinear3f(vec3 srgbcolor)\n  {\n  bvec3 cutoff=lessThan(srgbcolor,vec3(0.04045));\n  vec3 higher=pow((srgbcolor+vec3(0.055))/vec3(1.055),vec3(2.4));\n  vec3 lower=srgbcolor/vec3(12.92);\n\n  return (mix(higher,lower,cutoff));\n  }\n  \nvec3 fresnel_factor(in vec3 f0,in float product)\n  {\n  return mix(f0,vec3(1.0),pow(1.01-product,5.0));\n  }\n  \nfloat D_GGX(in float roughness,in float NdH)\n  {\n  float m=roughness*roughness;\n  float m2=m*m;\n  float d=(NdH*m2-NdH)*NdH+1.0;\n  \n  return m2/(PI*d*d);\n  }\n\nfloat G_schlick(in float roughness,in float NdV,in float NdL)\n  {\n  float k=roughness*roughness*0.5;\n  float V=NdV*(1.0-k)+k;\n  float L=NdL*(1.0-k)+k;\n  \n  return(0.25/(V*L));\n  }\n\nvec3 cooktorrance_specular(in float NdL,in float NdV,in float NdH,in vec3 specular,in float roughness)\n  {\n  float D=D_GGX(roughness,NdH);\n  float G=G_schlick(roughness,NdV,NdL);\n  float rim=1.0;//mix(1.0-roughness*0.0*0.9,1.0,NdV);\n  //  rim=mix(1.0-roughness*1.0*0.9,1.0,NdV);\n\n  return((1.0/rim)*specular*G*D);\n  }\n  \nvec3 pbr(in vec3 albedo,in float metallic,in float roughness,float shadow,in vec3 viewnormal,in vec3 lightnormal,in vec3 halfnormal,in vec3 normal)\n  {\n  vec3 fres;\n  float NdL;\n  float NdV;\n  float NdH;\n  float HdV;\n  float g;\n  vec3 specfresnel;\n  vec3 specref;\n  vec3 diffref;\n  vec3 reflectnormal;\n  vec3 env;\n  vec3 color;\n \n  //if ((flags&1)==1)\n  //albedo=pow(albedo,vec3(2.2));\n  albedo=converttolinear3f(albedo);\n \n  fres=vec3(0.02);\n  fres=mix(fres,albedo,metallic);\n  \n  NdL=max(0.001,dot(normal,lightnormal));\n  NdV=max(0.001,dot(normal,viewnormal));\n  NdH=max(0.001,dot(normal,halfnormal));\n  HdV=max(0.001,dot(halfnormal,viewnormal));\n  \n  specfresnel=fresnel_factor(fres,HdV);\n  specref=cooktorrance_specular(NdL,NdV,NdH,specfresnel,roughness);\n  specref*=vec3(NdL);\n  \n  g=1.0-NdL;\n  g=pow(g,1.0+roughness*3.0);\n  g=1.0-g;\n  g*=(1.0-roughness*0.375);  \n  \n  diffref=(vec3(1.0)-specfresnel)*g;//(1.0/PI)*\n\n  reflectnormal=reflect(-viewnormal,normal);\n  reflectnormal.yz=-reflectnormal.yz;\n\n  specref*=lightdiffuse*shadow;\n  diffref*=lightdiffuse*shadow;\n  env=textureLod(tex_cubemap,reflectnormal,7.0).rgb;\n  //env=textureLod(tex_cubemap,vec3(0.0,-1.0,0.0),7.0).rgb;\n  //if ((flags&1)==1)\n  //env=pow(env,vec3(2.2));  \n  env=converttolinear3f(env);\n  \n  //diffref+=textureLod(tex_cubemap,reflectnormal,9.0).rgb*0.5;\n  diffref+=env*0.75;\n  diffref*=1.5;\n  \n  env=textureLod(tex_cubemap,reflectnormal,roughness*roughness*8.0).rgb;\n  //if ((flags&1)==1)\n  //env=pow(env,vec3(2.2));  \n  env=converttolinear3f(env);\n  specfresnel=fresnel_factor(fres,NdV)*(1.0-roughness*0.5);\n  //if ((flags&1)==0)\n  //specref+=env*metallic*0.25;//*specfresnel;\n  //else\n  specref+=env*0.75*specfresnel;\n  \n  color=diffref*mix(albedo,vec3(0.0),metallic)+specref;\n\n  //if ((debugflags&16)==16)\n  //color.rgb+=albedo*(vec3(1.0)-specfresnel)*textureLod(tex_cubemap,reflectnormal,7.0).rgb*0.5;//*lightambient;\n  \n  //color.rgb=color.rgb/(color.rgb+vec3(1.0));\n  //if ((flags&1)==1)\n  //color=pow(color,vec3(1.0/2.2));\n  color=converttosrgb3f(color);\n  \n  return(color);\n  }\n  \nvoid main()\n  {\n  int count;\n  vec3 lightnormal;\n  vec3 viewnormal;\n  vec3 halfnormal;\n  vec3 reflectvec;\n  vec4 color;\n  vec4 color2;\n  vec4 color3;\n  vec3 texcolor;\n  vec4 normal;\n  vec3 position;\n  float scale,scale2;\n  float rho,k;\n  float height;\n  vec2 shadowmaptexcoord;\n  float shadow;\n  float occlusion;\n  float shine;\n  float shine2;\n  float dist;\n  float metallic;\n  float roughness;  \n  \n  if (isreflection==1)\n    {\n    position=wsposition-planeposition;\n    if (dot(position,planenormal)<0.0)\n      discard;\n    }\n    \n  shadowmaptexcoord=gl_FragCoord.xy*ooresolution;\n  shadow=texture(tex_shadowmap,shadowmaptexcoord).r;\n  occlusion=0.5;//texture(tex_shadowmap,shadowmaptexcoord).g;\n\n  lightnormal=normalize(lightvec);\n  viewnormal=normalize(viewvec);\n  halfnormal=normalize(viewnormal+lightnormal);\n  \n  color=texture(tex_color,vec3(texcoord.xy,texlevel));\n\n  texcolor=color.rgb;\n  shine=color.a;\n\n  normal.xyz=normalize(normalvec);\n  \n  color2=texture(tex_material,vec3(texcoord.xy,texlevel));\n\n  color2.rgb=converttolinear3f(color2.rgb);\n  metallic=color2.r;\n  roughness=color2.g;\n  color.rgb=pbr(texcolor,metallic,roughness,shadow,viewnormal,lightnormal,halfnormal,normal.xyz);\n  \n  if (shine>0.0)\n    {\n    color3.rgb=color.rgb;\n\t\n    scale2=1.0-abs(dot(-viewnormal,normal.xyz));\n    scale2=pow(scale2,2.5);  \n    scale2=0.5+scale2*(1.0-0.5);    \n\n    reflectvec=reflect(-viewnormal,normal.xyz);\n    \n    //if ((flags&1)==1)\n    //reflectvec=(reflectvec-viewnormal)*vec3(1.25)+viewnormal;\n    \n    //reflectvec.x=-reflectvec.x;\n    reflectvec.y=-reflectvec.y;\n    reflectvec.z=-reflectvec.z;\n    reflectvec=normalize(reflectvec);\n      \n    color2.rgb=texture(tex_cubemap,reflectvec).rgb;\n    \n    color2.rgb=color2.rgb*vec3(scale2)+lightambient*vec3((1.0-scale2)*0.5);\n    \n      \n    shine2=(shine-0.5)*2.0;\n    //shine+=0.5;\n    //shine=min(shine,1.0);\n    //shine=1.0;\n    //color.rgb=vec3(0.125);\n    //color.rgb=mix(color.rgb,vec3(0.25),shine2);\n    //color.rgb=mix(color.rgb,color2.rgb,shine2);\n\n    color.rgb=mix(color.rgb,color2.rgb,shine);\n    //color.rgb=mix(color.rgb,color3.rgb,1.0-shine);\n\n    //color.rgb=vec3(0.0,1.0,1.0);\n    }\n  \n  //color.rgb=vec3(0.0,1.0,1.0);\n  color.a=1.0;\n\n  glfragcolor=color;\n  }'
  XREF 0x14014b552 FUNC 0x14014b2a0 sub_14014B2A0 lea     r8, aVersion330Core_3; "#version 330 core\n\nuniform sampler2DA"...