Files
bluflame/ev16-4k/redist/obj/party/main.compress.asm
2026-04-18 22:31:51 +02:00

517 lines
14 KiB
NASM

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.00.23918.0
TITLE E:\blu-flame.org\ev16-4k\redist\main.compress.cpp
.686P
.XMM
include listing.inc
.model flat
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC ?intro_fs@@3PADA ; intro_fs
PUBLIC ?source@@3PADA ; source
PUBLIC ?_fltused@@3HA ; _fltused
PUBLIC ??_C@_0BH@BOJGDFJN@glCreateShaderProgramv?$AA@ ; `string'
PUBLIC ??_C@_0N@ICBDHBI@glUseProgram?$AA@ ; `string'
PUBLIC ??_C@_0M@MNEJMNAO@glUniform4f?$AA@ ; `string'
PUBLIC ?WaveFMT@@3UtWAVEFORMATEX@@A ; WaveFMT
PUBLIC ?WaveHDR@@3Uwavehdr_tag@@A ; WaveHDR
PUBLIC ?MMTime@@3Ummtime_tag@@A ; MMTime
synthnothing SEGMENT
?lpSoundBuffer@@3PAMA DD 0c9db00H DUP (?) ; lpSoundBuffer
synthnothing ENDS
mmtime SEGMENT
?MMTime@@3Ummtime_tag@@A DD 02H ; MMTime
DD 00H
ORG $+4
mmtime ENDS
wavehdr SEGMENT
?WaveHDR@@3Uwavehdr_tag@@A DD FLAT:?lpSoundBuffer@@3PAMA ; WaveHDR
DD 03276c00H
DD 00H
DD 00H
DD 00H
DD 00H
DD 00H
DD 00H
wavehdr ENDS
wavefmt SEGMENT
?WaveFMT@@3UtWAVEFORMATEX@@A DW 03H ; WaveFMT
DW 02H
DD 0ac44H
DD 056220H
DW 08H
DW 020H
DW 00H
wavefmt ENDS
; COMDAT ??_C@_0M@MNEJMNAO@glUniform4f?$AA@
CONST SEGMENT
??_C@_0M@MNEJMNAO@glUniform4f?$AA@ DB 'glUniform4f', 00H ; `string'
CONST ENDS
glUniform4f SEGMENT
?sglUniform4f@@3PBDB DD FLAT:??_C@_0M@MNEJMNAO@glUniform4f?$AA@ ; sglUniform4f
glUniform4f ENDS
; COMDAT ??_C@_0N@ICBDHBI@glUseProgram?$AA@
CONST SEGMENT
??_C@_0N@ICBDHBI@glUseProgram?$AA@ DB 'glUseProgram', 00H ; `string'
CONST ENDS
glUseProgram SEGMENT
?sglUseProgram@@3PBDB DD FLAT:??_C@_0N@ICBDHBI@glUseProgram?$AA@ ; sglUseProgram
glUseProgram ENDS
; COMDAT ??_C@_0BH@BOJGDFJN@glCreateShaderProgramv?$AA@
CONST SEGMENT
??_C@_0BH@BOJGDFJN@glCreateShaderProgramv?$AA@ DB 'glCreateShaderProgramv'
DB 00H ; `string'
CONST ENDS
glCreateShaderProgramv SEGMENT
?sglCreateShaderProgramv@@3PBDB DD FLAT:??_C@_0BH@BOJGDFJN@glCreateShaderProgramv?$AA@ ; sglCreateShaderProgramv
glCreateShaderProgramv ENDS
fltused SEGMENT
?_fltused@@3HA DD 01H ; _fltused
fltused ENDS
fcw SEGMENT
?fcw@@3GA DW 0e7fH ; fcw
fcw ENDS
devmode SEGMENT
?devmode@@3UFAKEDEVMODE@@A DB 00H ; devmode
ORG $+35
DD 07cH
DD 0180000H
DB 00H
ORG $+3
DD 021H
DB 00H
ORG $+55
DD 0500H
DD 0400H
DB 00H
ORG $+7
devmode ENDS
Shader0 SEGMENT
?intro_fs@@3PADA DB 'const int z=0x0;uniform vec4 v;float i,y,f,m,l=6.283'
DB '19;int e;vec2 r;vec3 x,a,s=vec3(0.),w=vec3(0.),d=vec3(3.,2.5,'
DB '2.),t=vec3(.7,.6,.4);vec4 b;vec2 n(vec2 a,float y){return cos'
DB '(y)*a+sin(y)*vec2(-a.y,a.x);}float n(inout vec2 a,float v,flo'
DB 'at y){float z=atan(a.y,a.x),m=mod(z,y)-y*.5;a=length(a)*vec2('
DB 'cos(m),sin(m));a.x-=v;return z-m;}void h(inout float z,float '
DB 'y){z=mod(z-y*.5,y)-y*.5;}void h(inout float z,float y,float x'
DB '){z=max(abs(z)-x,mod(z-y*.5,y)-y*.5);}float p(float z,float y'
DB '){return floor((z-y*.5)/y);}float p(in vec3 z,in vec3 y,float'
DB ' a){return length(max(abs(z)-y+vec3(a),0.))-a;}float c(in vec'
DB '2 z,in vec2 y,float a){return length(max(abs(z)-y+vec2(a),0.)'
DB ')-a;}float c(float z,float y,float x,float i){return sin(z+y+'
DB 'i*sin(z+x));}float o(float y,float z,float x){float a=clamp(.'
DB '5+.5*(z-y)/x,0.,1.);return mix(z,y,a)-x*a*(1.-a);}float c(vec'
DB '2 z){float y=dot(z,vec2(23.2,15.7));return fract(sin(y)*232.4'
DB '5);}float h(vec2 y){vec2 a=vec2(1.,0.),z=floor(y),v=fract(y);'
DB 'v*=v*(3.-2.*v);return-.5+mix(mix(c(z+a.yy),c(z+a.xy),v.x),mix'
DB '(c(z+a.yx),c(z+a.xx),v.x),v.y);}float n(vec3 a){a.y+=4.*c(1.1'
DB ',y*3.+a.z*.02,.4,a.z*.02);a.x+=4.*c(.9,y*4.+a.z*.02,-1.4,a.z*'
DB '.02);float z=p(a.z,24.);h(a.z,24.);a.xy=n(a.xy,z+c(1.1,y*4.,1'
DB '.3,z*.2));z=max(12.-length(a.xz),length(length(a.xy)-32.)-1.)'
DB ';n(a.xy,32.,l/5.);return min(z,max(length(a.z)-1.,length(leng'
DB 'th(a.xy)-18.)-1.));}float o(vec3 y){if(z>7)return length(y)-3'
DB '2.-v.w;else return length(y)-48.-v.w;}float p(vec3 a){if(z>7)'
DB '{float i=999.;for(float f=0.;f<3.;f+=1){vec3 m=a;m.xy=n(m.xy,'
DB 'f+2.3*y);m.zx=n(m.zx,2.*f+4.3*y);m.z+=48.+8.*c(1.1,y*2.,.4,y*'
DB '.02);m.yz=n(m.yz,f+5.9*y);m.xy=n(m.xy,f+2.3*y);i=min(i,p(m,ve'
DB 'c3(16.,16.,16.)+v.w,3.));}return max(40.-length(a),o(i,length'
DB '(a)-34.,24.));}else if(z>3){float i=360.-y*222.-a.z;i=8.-(i<0'
DB '.?0.:.001*i*i);a.y-=4.*c(1.1,y*2.+a.z*.02,.4,a.z*.02);a.x-=4.'
DB '*c(.9,y*2.+a.z*.02,-1.4,a.z*.02);return length(a.xy)-i-v.w;}e'
DB 'lse return a.z+=192.-96.*y,a.xy=n(a.xy,2.3*y),a.yz=n(a.yz,1.9'
DB '*y),p(a,vec3(32.,32.,32.)+v.w,0.);}float u(vec3 a){if(z>7){fl'
DB 'oat i=p(a,vec3(555.,555.,555.),0.),f=1.;vec3 v=a;for(int m=0;'
DB 'm<4;m++){v.x+=33.;v.xz=n(v.xz,1.6+.13*y);v.yz=n(v.yz,.912*y);'
DB 'float x=444./f;vec3 s=abs(.33-abs(mod(v-x*.5,x)-x*.5));i=max('
DB 'i,111./f-min(max(s.x,s.y),min(max(s.y,s.z),max(s.z,s.x))));f*'
DB '=3.;}return i;}else if(z>3)return n(a);else{float i=n(a.xy,64'
DB '.,l/48.),f=p(a.z,6.);h(a.z,12.);i=c(i,y*8.,1.3,f*.2)+.8;retur'
DB 'n length(a)-i;}}float g(vec3 a){return min(min(o(a),p(a)),u(a'
DB '));}float F(vec3 a){return g(a);}void C(vec3 a){b=vec4(-1.8,3'
DB '.,.6,2.);float z=.1;if(z>o(a))z=o(a),s=vec3(250,105,0)/255,m='
DB '.6;if(z>p(a))z=p(a),s=vec3(105,210,231)/255,m=.6;if(z>u(a))s='
DB 'vec3(224,228,204)/255,m=.3;}vec3 C(vec3 y,vec3 z,vec2 a){retu'
DB 'rn smoothstep(a.x,a.y,dot(vec3(.86,.5,0.),y))*z;}vec3 k(vec3 '
DB 'y){vec2 a=vec2(gl_FragCoord.xy/v.y);a.x-=v.z;vec2 z=2*a-1;flo'
DB 'at i=min(8.*abs(sin(v.x*3.1415)),1.);y*=.9+.1*sin(10.*v.x+z.x'
DB '*v.y);y*=.9+.1*sin(10.*v.x+z.y*v.y);float m=1.5-length(z*2)*.'
DB '15;if(a.y>=i-.02)y*=.7;if(a.y>=i-.04)y*=.7;if(a.y<=1.02-i)y*='
DB '.7;if(a.y<=1.04-i)y*=.7;return smoothstep(0.,1.,y*m*i)*2.;}vo'
DB 'id main(){y=fract(v.x);f=y*y;a=vec3(gl_FragCoord.xy/v.y-.5,.8'
DB ');a.x-=v.z;vec3 l=vec3(0.,11.,-y*33.);if(z<1)l=vec3(-44.,-33.'
DB ',99.),a.yz=n(a.yz,-y),a.xz=n(a.xz,-y);else if(z<2)l=vec3(22.,'
DB '3.,111.*(1.-y*.3)),a.xz=n(a.xz,3.);else if(z<3)l=vec3(-44.,-3'
DB '3.,-99.),a.yz=n(a.yz,-y),a.xz=n(a.xz,4.5-y);else if(z<4)l=vec'
DB '3(55.,33.,-155.*(1.-y*.6)),a.yz=n(a.yz,.4),a.xz=n(a.xz,-4.5-y'
DB ');else if(z<5)l=vec3(11.,0.,-111.),a.xz=n(a.xz,3.);else if(z<'
DB '6)l=vec3(-18.,-11.,-111.*(1.-y*.3)),a.yz=n(a.yz,-y*.3),a.xz=n'
DB '(a.xz,-y);else if(z<7)l=vec3(-18.,-11.,144.*(1.-y*.3)),a.yz=n'
DB '(a.yz,-y*.3),a.xz=n(a.xz,-y);else if(z<8)l=vec3(18.,-11.,111.'
DB '*(1.-y*.5)),a.yz=n(a.yz,-y*.3),a.xz=n(a.xz,-.3+y*2.);else if('
DB 'z<9)l=vec3(-55.,99.,177.),a.yz=n(a.yz,-.4),a.xz=n(a.xz,3.5*(1'
DB '.-y*.3));else if(z<10)l=vec3(-290.,153.,-70.),a.yz=n(a.yz,.4)'
DB ',a.xz=n(a.xz,-y);else if(z<11)l=vec3(-66.,44.,0.),a.yz=n(a.yz'
DB ',.6),a.xz=n(a.xz,4.4);else l=vec3(-33.,33.*(1.-y),-11.),a.yz='
DB 'n(a.yz,-.5),a.xz=n(a.xz,-1.);a=normalize(a);x=vec3(0.,0.,0.);'
DB 'i=1.;float h=0.,u,p;e=0;b=vec4(-3.,8.,.9,1.);vec3 c=C(a,d,b.z'
DB 'w);while(e++<5){float o=222.;for(m=1.;o>=0.&&h<999.&&m>h*1e-0'
DB '6;h+=m,w=a*h,o-=1.)m=g(l+w);if(o<=1){o=0.;h=999.3;w=a*h;break'
DB ';}o=smoothstep(44.,1.,o);vec3 Z=l+w;l=Z;r=vec2(.04,0.);vec3 Y'
DB '=vec3(F(l+r.xyy)-F(l-r.xyy),F(l+r.yxy)-F(l-r.yxy),F(l+r.yyx)-'
DB 'F(l-r.yyx));C(l);Y=normalize(Y);if(h>999.){if(e<2)b=vec4(-3.,'
DB '8.,.9,1.);break;}a=reflect(a,Y);u=8.;for(p=1.;u>0.;u-=1.)p-=.'
DB '5*(u-g(l+Y*u))/exp2(u);s*=p;s*=C(a,t,b.xy);x+=i*mix(s,c,o);i*'
DB '=m;h=.5;w=a*h;}gl_FragColor.xyz=step(-12.,-v.x)*k(x+i*(C(a,d,'
DB 'b.zw)+C(a,t,b.xy)));}', 00H ; intro_fs
?source@@3PADA DD FLAT:?intro_fs@@3PADA ; source
Shader0 ENDS
CONST SEGMENT
?gfAspectOffset@@3MB DD 03e000000r ; 0.125 ; gfAspectOffset
?giSceneLength@@3HB DD 081300H ; giSceneLength
CONST ENDS
PUBLIC _main
EXTRN __imp__ExitProcess@4:PROC
EXTRN __imp__CreateThread@24:PROC
EXTRN __imp__ChoosePixelFormat@8:PROC
EXTRN __imp__SetPixelFormat@12:PROC
EXTRN __imp__wglCreateContext@4:PROC
EXTRN __imp__wglGetProcAddress@4:PROC
EXTRN __imp__wglMakeCurrent@8:PROC
EXTRN __imp__SwapBuffers@4:PROC
EXTRN __imp__PeekMessageA@20:PROC
EXTRN __imp__CreateWindowExA@48:PROC
EXTRN __imp__GetAsyncKeyState@4:PROC
EXTRN __imp__GetDC@4:PROC
EXTRN __imp__ShowCursor@4:PROC
EXTRN __imp__ChangeDisplaySettingsA@8:PROC
EXTRN __imp__waveOutOpen@24:PROC
EXTRN __imp__waveOutPrepareHeader@12:PROC
EXTRN __imp__waveOutWrite@12:PROC
EXTRN __imp__waveOutGetPosition@12:PROC
EXTRN __4klang_render@4:PROC
EXTRN __imp__glRecti@16:PROC
EXTRN __4klang_envelope_buffer:DWORD
synthnothing SEGMENT
?hWaveOut@@3PAUHWAVEOUT__@@A DD 01H DUP (?) ; hWaveOut
synthnothing ENDS
mainbss SEGMENT
?programs@@3PAIA DD 0dH DUP (?) ; programs
mainbss ENDS
; Function compile flags: /Ogspy
; COMDAT _main
main SEGMENT
_main PROC ; COMDAT
; File e:\blu-flame.org\ev16-4k\redist\main.compress.cpp
; Line 98
push ebx
push esi
push edi
; Line 101
fldcw WORD PTR ?fcw@@3GA
; Line 103
xor esi, esi
; Line 105
push esi
; Line 106
push esi
; Line 107
push esi
; Line 108
push esi
; Line 111
push esi
; Line 112
push esi
; Line 113
push esi
; Line 114
push esi
; Line 115
push -1862270976 ; 91000000H
; Line 116
push esi
; Line 117
push 49177 ; 0000c019H
; Line 118
push esi
; Line 119
push 4
; Line 120
push OFFSET ?devmode@@3UFAKEDEVMODE@@A
; Line 121
push esi
; Line 122
push esi
; Line 123
push OFFSET ?lpSoundBuffer@@3PAMA
; Line 124
push OFFSET __4klang_render@4
; Line 125
push esi
; Line 126
push esi
; Line 127
call DWORD PTR __imp__CreateThread@24
; Line 128
call DWORD PTR __imp__ChangeDisplaySettingsA@8
; Line 129
call DWORD PTR __imp__CreateWindowExA@48
; Line 149
push eax
; Line 150
call DWORD PTR __imp__GetDC@4
; Line 151
mov edi, eax
; Line 153
push esi
; Line 155
push edi
; Line 157
push edi
; Line 162
push esi
; Line 163
push OFFSET ?devmode@@3UFAKEDEVMODE@@A+44
; Line 164
push edi
; Line 165
call DWORD PTR __imp__ChoosePixelFormat@8
; Line 166
push eax
; Line 168
push edi
; Line 169
call DWORD PTR __imp__SetPixelFormat@12
; Line 170
call DWORD PTR __imp__wglCreateContext@4
; Line 171
push eax
; Line 172
push edi
; Line 173
call DWORD PTR __imp__wglMakeCurrent@8
; Line 175
call DWORD PTR __imp__SwapBuffers@4
; Line 177
call DWORD PTR __imp__ShowCursor@4
; Line 179
xor ebx, ebx
$shaderwarmup$4:
; Line 183
push 1
; Line 184
push 1
; Line 185
push -1
; Line 186
push -1
; Line 188
push OFFSET ?source@@3PADA ; source
; Line 189
push 1
; Line 190
push 35632 ; 00008b30H
; Line 191
push DWORD PTR ?sglCreateShaderProgramv@@3PBDB
; Line 192
call DWORD PTR __imp__wglGetProcAddress@4
; Line 193
call eax
; Line 194
mov DWORD PTR ?programs@@3PAIA[ebx*4], eax
; Line 196
push eax
; Line 197
push DWORD PTR ?sglUseProgram@@3PBDB
; Line 198
call DWORD PTR __imp__wglGetProcAddress@4
; Line 199
call eax
; Line 201
inc BYTE PTR ?intro_fs@@3PADA+14
; Line 203
cmp ebx, 9
; Line 204
jne SHORT $skip$5
; Line 205
mov BYTE PTR ?intro_fs@@3PADA+14, 65 ; 00000041H
$skip$5:
; Line 208
push esi
; Line 209
push DWORD PTR ?gfAspectOffset@@3MB
; Line 210
push DWORD PTR ?devmode@@3UFAKEDEVMODE@@A+112
; Line 211
fild DWORD PTR [esp]
; Line 212
fstp DWORD PTR [esp]
; Line 213
push ebx
; Line 214
fild DWORD PTR [esp]
; Line 215
fstp DWORD PTR [esp]
; Line 216
push esi
; Line 217
push DWORD PTR ?sglUniform4f@@3PBDB
; Line 218
call DWORD PTR __imp__wglGetProcAddress@4
; Line 219
call eax
; Line 220
call (null) PTR __imp__glRecti@16
; Line 222
inc ebx
; Line 223
cmp ebx, 13 ; 0000000dH
; Line 224
jne SHORT $shaderwarmup$4
; Line 227
push 32 ; 00000020H
; Line 228
push OFFSET ?WaveHDR@@3Uwavehdr_tag@@A
; Line 230
push 32 ; 00000020H
; Line 231
push OFFSET ?WaveHDR@@3Uwavehdr_tag@@A
; Line 232
push esi
; Line 233
push esi
; Line 234
push esi
; Line 235
push OFFSET ?WaveFMT@@3UtWAVEFORMATEX@@A
; Line 236
push -1
; Line 237
push OFFSET ?hWaveOut@@3PAUHWAVEOUT__@@A
; Line 238
call DWORD PTR __imp__waveOutOpen@24
; Line 240
push DWORD PTR ?hWaveOut@@3PAUHWAVEOUT__@@A
; Line 241
call DWORD PTR __imp__waveOutPrepareHeader@12
; Line 243
push DWORD PTR ?hWaveOut@@3PAUHWAVEOUT__@@A
; Line 244
call DWORD PTR __imp__waveOutWrite@12
$mainloop$6:
; Line 247
push 12 ; 0000000cH
; Line 248
push OFFSET ?MMTime@@3Ummtime_tag@@A
; Line 249
push DWORD PTR ?hWaveOut@@3PAUHWAVEOUT__@@A
; Line 250
call DWORD PTR __imp__waveOutGetPosition@12
; Line 252
push esi
; Line 253
push esi
; Line 254
push esi
; Line 255
push esi
; Line 256
push esi
; Line 257
push edi
; Line 258
push 1
; Line 259
push 1
; Line 260
push -1
; Line 261
push -1
; Line 262
push esi
; Line 265
mov eax, DWORD PTR ?MMTime@@3Ummtime_tag@@A+4
; Line 266
shr eax, 3
; Line 267
and eax, 536870880 ; 1fffffe0H
; Line 268
movss xmm0, XMMWORD PTR __4klang_envelope_buffer[GF2f+eax*4+20]
; Line 269
addss xmm0, DWORD PTR __4klang_envelope_buffer[GF2f+eax*4+16]
; Line 270
movss XMMWORD PTR [esp], xmm0
; Line 272
push DWORD PTR ?gfAspectOffset@@3MB
; Line 273
push DWORD PTR ?devmode@@3UFAKEDEVMODE@@A+112
; Line 274
fild DWORD PTR [esp]
; Line 275
fstp DWORD PTR [esp]
; Line 276
push DWORD PTR ?MMTime@@3Ummtime_tag@@A+4
; Line 277
fild DWORD PTR [esp]
; Line 278
fild DWORD PTR ?giSceneLength@@3HB
; Line 279
fdivp ST(1), ST(0)
; Line 280
fst DWORD PTR [esp]
; Line 281
push esi
; Line 282
push esi
; Line 283
fistp DWORD PTR [esp]
; Line 284
pop eax
; Line 285
push DWORD PTR ?programs@@3PAIA[eax*4]
; Line 286
push DWORD PTR ?sglUseProgram@@3PBDB
; Line 287
call DWORD PTR __imp__wglGetProcAddress@4
; Line 288
call eax
; Line 290
push DWORD PTR ?sglUniform4f@@3PBDB
; Line 291
call DWORD PTR __imp__wglGetProcAddress@4
; Line 292
call eax
; Line 293
call (null) PTR __imp__glRecti@16
; Line 294
call DWORD PTR __imp__SwapBuffers@4
; Line 295
call DWORD PTR __imp__PeekMessageA@20
; Line 297
cmp DWORD PTR ?MMTime@@3Ummtime_tag@@A+4, 6614400 ; 0064ed80H
; Line 298
jae SHORT $exit$7
; Line 299
push 27 ; 0000001bH
; Line 300
call WORD PTR __imp__GetAsyncKeyState@4
; Line 301
test ax, ax
; Line 302
je $mainloop$6
$exit$7:
; Line 304
push esi
; Line 305
call (null) PTR __imp__ExitProcess@4
; Line 307
pop edi
pop esi
pop ebx
ret 0
_main ENDP
main ENDS
END