     $nm esi=
$op 4 4 4096
$go 0 [ebx+8]
$mv esi,eax
'_51
$go 0 fwd here
: .here
: pop eax : sub eax,here : add eax,bssdata
'_52
mov [eax+624],ebx ;
'_53
mov [eax+632],esi ;
$va 26 4 kernel32,user32,GDI32,opengl32,glu32
'_64
$nm kernel32=
$qu "kernel32.dll"
$op 4 4 eax
$go 0 [ebx+24]
$mv [esi],eax
'_65
$nm user32=
$qu "user32.dll"
$op 4 4 eax
$go 0 [ebx+24]
$mv [esi+4],eax
'_66
$nm gdi32=
$qu "GDI32.dll"
$op 4 4 eax
$go 0 [ebx+24]
$mv [esi+8],eax
'_67
$nm opengl32=
$qu "Opengl32.dll"
$op 4 4 eax
$go 0 [ebx+24]
$mv [esi+12],eax
'_68
$nm glu32=
$qu "glu32.dll"
$op 4 4 eax
$go 0 [ebx+24]
$mv [esi+16],eax
lea eax,[esi+20]
push eax
o2 8D 83 gc 1
push eax
push [esi]
call [ebx+48]
lea eax,[esi+44]
push eax
o2 8D 83 gc 2
push eax
push [esi+4]
call [ebx+48]
lea eax,[esi+144]
push eax
o2 8D 83 gc 3
push eax
push [esi+8]
call [ebx+48]
lea eax,[esi+164]
push eax
o2 8D 83 gc 4
push eax
push [esi+12]
call [ebx+48]
lea eax,[esi+352]
push eax
o2 8D 83 gc 5
push eax
push [esi+16]
call [ebx+48]
$va 2A 4 glMultiTexCoord2fARB, glActiveTextureARB
$va 1D 4 pa, wglChoosePixelFormatARB
'_187
$nm glmultitexcoord2farb=
$qu "glMultiTexCoord2fARB"
$op 4 4 eax
$go 0 [esi+348]
$mv [esi+360],eax
'_188
$nm glactivetexturearb=
$qu "glActiveTextureARB"
$op 4 4 eax
$go 0 [esi+348]
$mv [esi+364],eax
'_189
$nm pa=
$qu "wglGetExtensionsStringARB"
$op 4 4 eax
$go 0 [esi+348]
$mv [esi+368],eax
'_190
$nm wglchoosepixelformatarb=
$qu "wglChoosePixelFormatARB"
$op 4 4 eax
$go 0 [esi+348]
$mv [esi+372],eax
$va D 4 viewport(4)
$va 1F 8 ModelView(16), Projection(16)
$va 20 16 model_diffuse, model_specular
$va 11 4 model_shininess
o2 8D 83 gc 6

'_212
mov edx,eax
'_214
$op 4 4 36 
$op 1 4 edx
$op 4 4 
$aa [esi+648]
$op 4 4 edi
$go 0 [ebx+72]
$va 4A 4 light_position(4), light_diffuse(4), light_specular(4), light_ambient(4)
$va 6 8 half
o2 8D 83 gc 7

'_226
mov edx,eax
'_228
$op 4 4 72 
$op 1 4 edx
$op 4 4 
$aa [esi+684]
$op 4 4 edi
$go 0 [ebx+72]
$va 7 8 twopi
'_230
fldpi
'_231
fadd st0,st0
'_232
fstp qword [esi+756]
$va 8 8 aspect
$va 17 4 rot_x, rot_y, rot_z, 
$va 24 4 wwidth, wheight, wwidthm, wheightm
$va 1E 4 hWnd, hDC, npixelformat, hRC
$va 1B 4 bselect, kselect, refresh
$va 10 8 grtic1, grtic2
$va D 4 ReqShutdown
$va 37 4 mposX, mPosy, sPosX, sPosY, bLeft, bMid, bRight, xpos
$va 19 4 xpos, ypos, active_view
$va E 4 cmdline,inst
'_260
$nm cmdline=
$go 0 [esi+28]
$mv [esi+892],eax
'_261
$nm inst=
$op 4 4 0
$go 0 [esi+32]
$mv [esi+896],eax
'_263
$op 4 4 1 
$op 4 4 [esi+892]
$op 4 4 0
$op 4 4 [esi+896]
$go 0 winmain
'_268
$op 4 4 [esi]
$go 0 [ebx+32]
'_269
$op 4 4 [esi+4]
$go 0 [ebx+32]
'_270
$op 4 4 [esi+8]
$go 0 [ebx+32]
'_271
$op 4 4 [esi+12]
$go 0 [ebx+32]
'_272
$op 4 4 [esi+16]
$go 0 [ebx+32]
'_273
$op 1 4 esi
$op 4 4 
$go 0 [ebx+16]
'_274
$op 4 4 0
$go 0 [esi+24]
o2
(
!10 
)
'_286
.drawtorus
$va C 4 torus_list
'_290

(
'_291
cmp [esi+900],0
'_292
jnz exit
'_293
call build_torus
'_294

)
'_295
$op 4 4 [esi+900]
$go 0 [esi+212]
'_296
ret
'_298
.build_torus
$va 9 4 i, j, k
$va 1B 8 s, t, x, y, z, nx, ny, nz
$va 1A 8 torus_major, torus_minor
$va 22 4 torus_major_res, torus_minor_res
o2 8D 83 gc 8

'_314
fld qword [eax]
'_315
fstp qword [esi+980]
'_316
fld qword [eax+8]
'_317
fstp qword [esi+988]
'_318
mov dword [esi+996],32
'_319
mov dword [esi+1000],32
'_322
$nm torus_list=
$op 4 4 1
$go 0 [esi+172]
$mv [esi+900],eax
'_323
$op 4 4 0x1300 
$op 4 4 [esi+900]
$go 0 [esi+180]
'_327
mov [esi+904],0
'_328
.toro_do1
'_332
$op 4 4 8 
$go 0 [esi+184]
'_333
mov [esi+908],0
'_334
.toro_do2
'_335
mov [esi+912],1
'_336
.toro_do3
$va E 8 gscale      
'_353
fild qword [esi+1000]
'_354
fild dword [esi+904]
'_355
fiadd dword [esi+912]
'_356
fprem
'_357
fadd qword [esi+748]
'_358
fstp qword [esi+916]
'_359
fcomp st0
'_361
fild dword [esi+996]
'_362
fild dword [esi+908]
'_363
fprem
'_364
fstp qword [esi+924]
'_365
fcomp st0
'_369
fld qword [esi+980]
'_370
fld qword [esi+988]
'_371
fld qword [esi+916]
'_372
fmul qword [esi+756]
'_373
fidiv dword [esi+1000]
'_374
fcos
'_375
fmulp st1,st0
'_376
faddp st1,st0
'_378
fld qword [esi+924]
'_379
fmul qword [esi+756]
'_380
fidiv dword [esi+996]
'_381
fcos
'_382
fmulp st1,st0
'_383
fstp qword [esi+932]
'_385
fld qword [esi+988]
'_386
fld qword [esi+916]
'_387
fmul qword [esi+756]
'_388
fidiv dword [esi+1000]
'_389
fsin
'_390
fmulp st1,st0
'_391
fstp qword [esi+940]
'_393
fld qword [esi+980]
'_394
fld qword [esi+988]
'_395
fld qword [esi+916]
'_396
fmul qword [esi+756]
'_397
fidiv dword [esi+1000]
'_398
fcos
'_399
fmulp st1,st0
'_400
faddp st1,st0
'_402
fld qword [esi+924]
'_403
fmul qword [esi+756]
'_404
fidiv dword [esi+996]
'_405
fsin
'_406
fmulp st1,st0
'_407
fstp qword [esi+948]
'_411
fld qword [esi+932]
'_412
fld qword [esi+924]
'_413
fmul qword [esi+756]
'_414
fidiv dword [esi+996]
'_415
fcos
'_416
fmul qword [esi+980]
'_417
fsubp st1,st0
'_418
fstp qword [esi+956]
'_420
fld qword [esi+940]
'_421
fstp qword [esi+964]
'_423
fld qword [esi+948]
'_424
fld qword [esi+924]
'_425
fmul qword [esi+756]
'_426
fidiv dword [esi+996]
'_427
fsin
'_428
fmul qword [esi+980]
'_429
fsubp st1,st0
'_430
fstp qword [esi+972]
'_432
fld1
'_433
fld qword [esi+956]
'_434
fmul st0,st0
'_435
fld qword [esi+964]
'_436
fmul st0,st0
'_437
fld qword [esi+972]
'_438
fmul st0,st0
'_439
faddp st1,st0
'_440
faddp st1,st0
'_441
fsqrt
'_442
fdivp st1,st0
'_443
fstp qword [esi+1004]
'_445
fld qword [esi+956]
'_446
fmul qword [esi+1004]
'_447
fstp qword [esi+956]
'_448
fld qword [esi+964]
'_449
fmul qword [esi+1004]
'_450
fstp qword [esi+964]
'_451
fld qword [esi+972]
'_452
fmul qword [esi+1004]
'_453
fstp qword [esi+972]
'_455
push edi
'_457
sub esp,16
'_458
mov edi,esp
'_462
fld qword [esi+956]
'_463
fstp dword [edi]
'_464
fld qword [esi+964]
'_465
fstp dword [edi+4]
'_466
fld qword [esi+972]
'_467
fstp dword [edi+8]
'_468
$op 4 4 edi
$go 0 [esi+196]
'_469
fld qword [esi+932]
'_470
fstp dword [edi+0]
'_471
fld qword [esi+940]
'_472
fstp dword [edi+4]
'_473
fld qword [esi+948]
'_474
fstp dword [edi+8]
'_475
$op 4 4 edi
$go 0 [esi+200]
'_477
add esp,16
'_478
pop edi
'_486
dec [esi+912]
'_487
cmp [esi+912],0
'_488
jge long toro_do3
'_489
inc [esi+908]
'_490
mov eax,[esi+996]
'_491
cmp [esi+908],eax
'_492
jle long toro_do2
'_493
$go 0 [esi+204]
'_494
inc [esi+904]
'_495
mov eax,[esi+1000]
'_496
cmp [esi+904],eax
'_497
jl long toro_do1
'_499
$go 0 [esi+208]
'_500
ret ;
o2
(
!10 
)
'_510
.drawscene
'_512
$go 0 [esi+216]
'_514
push edi
'_515
sub esp,12
'_516
mov edi,esp
'_517
fild dword [esi+772]
'_518
fmul qword [esi+748]
'_519
fstp dword [edi  ]
'_520
fild dword [esi+776]
'_521
fmul qword [esi+748]
'_522
fstp dword [edi+4]
'_523
fild dword [esi+780]
'_524
fmul qword [esi+748]
'_525
fstp dword [edi+8]
'_527
$op 4 64 0.0
$op 4 64 0.0
$op 4 64 1.0
$op 4 4 [edi  ]
$go 0 [esi+224]
'_528
$op 4 64 0.0 
$op 4 64 1.0
$op 4 64 0.0
$op 4 4 [edi+4]
$go 0 [esi+224]
'_529
$op 4 64 1.0 
$op 4 64 0.0
$op 4 64 0.0
$op 4 4 [edi+8]
$go 0 [esi+224]
'_530
add esp,12
'_531
pop edi
'_533
$aa [esi+648]
$op 4 4 edi
$go 0 [esi+244]
'_536

(
'_542
$aa [esi+648]
$op 4 4 edi
$op 4 4 0x1201 
$op 4 4 0x0404 
$go 0 [esi+236]
'_543
$aa [esi+664]
$op 4 4 edi
$op 4 4 0x1202 
$op 4 4 0x0404 
$go 0 [esi+236]
'_544
$op 4 4 [esi+680]
$op 4 4 0x1601 
$op 4 4 0x0404 
$go 0 [esi+240]

)
'_547
call drawtorus
'_548
$go 0 [esi+220]
'_549
ret ;
o2
(
!4
)
'_559
.drawgrid
'_563

(
$va 11 4 gscale, gsteps 
$va 8 4 i     
$va A 4 z, y, x 
'_570
push ebp
'_571
mov ebp,esp
'_572
sub esp,32  ;
'_574
$go 0 [esi+216]
'_576
$op 4 64 0.0
$op 4 64 0.2
$op 4 64 0.05
$op 4 64 0.05
$go 0 [esi+248]
'_577
$op 4 4 0x4000 
$go 0 [esi+252]
'_580
$go 0 [esi+256]
'_581
sub esp,72
'_582
mov edx,esp
'_583
fldz
'_584
fst qword [edx]
'_585
fst qword [edx+8]
'_586
fst qword [edx+24]
'_587
fst qword [edx+32]
'_588
fst qword [edx+40]
'_589
fst qword [edx+48]
'_590
fstp qword [edx+64]
'_591
fld1
'_592
fst qword [edx+16]
'_593
fstp qword [edx+56]
'_594
$go 0 [esi+352]
'_598
$op 4 4 0 
$go 0 [esi+320]
'_601
$op 4 4 0xb50 
$go 0 [esi+260]
'_602
$op 4 64 0.5 
$op 4 64 0.5
$op 4 64 0.0
$go 0 [esi+268]
'_603
$op 4 4 1 
$go 0 [esi+184]
'_624
fild dword [ebp+12]
fld1
fsubp st1,st0
fmul qword [esi+748]
fmul dword [ebp+8]
fst dword [ebp-16]
fstp dword [ebp-12]
mov [ebp-4],0 
'_625
xor [ebp-12],0x80000000  ;
'_626

(
'_627
fldz
'_628
fstp dword [ebp-8]
'_629
xor [ebp-16],0x80000000  ;
'_630
$aa [ebp-16]
$op 4 4 edi
$go 0 [esi+200]
'_631
xor [ebp-16],0x80000000  ;
'_632
$aa [ebp-16]
$op 4 4 edi
$go 0 [esi+200]
'_634
fld dword [ebp-12]
'_635
fadd dword [ebp+8]
'_636
fstp dword [ebp-12]
'_637
inc [ebp-4]
'_638
mov eax,[ebp-4]
'_639
cmp eax,[ebp+12]
'_640
jl repeat
'_641

)
'_650
fild dword [ebp+12]
fld1
fsubp st1,st0
fmul qword [esi+748]
fmul dword [ebp+8]
fst dword [ebp-16]
fstp dword [ebp-12]
mov [ebp-4],0 
'_651
xor [ebp-16],0x80000000  ;
'_652

(
'_653
fldz
'_654
fstp dword [ebp-8]
'_655
xor [ebp-12],0x80000000  ;
'_656
$aa [ebp-16]
$op 4 4 edi
$go 0 [esi+200]
'_657
xor [ebp-12],0x80000000  ;
'_658
$aa [ebp-16]
$op 4 4 edi
$go 0 [esi+200]
'_660
fld dword [ebp-16]
'_661
fadd dword [ebp+8]
'_662
fstp dword [ebp-16]
'_663
inc [ebp-4]
'_664
mov eax,[ebp-4]
'_665
cmp eax,[ebp+12]
'_666
jl repeat
'_667

)
'_668
$go 0 [esi+204]
'_671
$op 4 4 1 
$go 0 [esi+320]
'_672
$go 0 [esi+220]
'_673
mov esp,ebp ;
'_674
pop ebp
'_675
ret 8
'_676

)
o2
(
!10 
)
'_686
.drawallviews
'_690

(
'_691
fld1
'_692
fstp qword [esi+764]
'_693
cmp [esi+788],0
'_694
jle exit
'_695
fild dword [esi+784]
'_696
fidiv dword [esi+788]
'_697
fstp qword [esi+764]
'_698

)
'_700
$op 4 64 0.0
$op 4 64 0.0
$op 4 64 0.0
$op 4 64 0.0
$go 0 [esi+248]
'_701
mov eax,0x4000  ;
'_702
or eax,0x0100  ;
'_703
$op 1 4 eax
$op 4 4 
$go 0 [esi+252]
'_704
$op 4 4 0x0C11 
$go 0 [esi+264]
'_705
$op 4 4 0x0B71 
$go 0 [esi+264]
'_706
$op 4 4 0x0203 
$go 0 [esi+272]
'_713
$op 4 4 0x1B01  
$op 4 4 0x0408
$go 0 [esi+276]
'_716
$op 4 4 0x0B20 
$go 0 [esi+264]
'_717
$op 4 4 0x0BE2 
$go 0 [esi+264]
'_718
$op 4 4 0x0303 
$op 4 4 0x0302
$go 0 [esi+280]
'_721
$op 4 4 0x1701 
$go 0 [esi+284]
'_722
$go 0 [esi+256]
'_724
sub esp,48
'_725
mov edx,esp
'_726
mov dword [edx],3
'_727
fild dword [edx]
'_728
fst qword [edx+24]
'_729
fchs
'_730
fst qword [edx+16]
'_731
fmul qword [esi+764]
'_732
fst qword [edx]
'_733
fchs
'_734
fstp qword [edx+8]
'_735
fld1
'_736
fstp qword [edx+32]
'_737
mov dword [edx+40],50
'_738
fild dword [edx+40]
'_739
fstp qword [edx+40]
'_740
$go 0 [esi+288]
'_742
$op 4 4 0x1700 
$go 0 [esi+284]
'_747
$op 4 4 [esi+796]
$op 4 4 [esi+792]
$op 4 4 [esi+796]
$op 4 4 0
$go 0 [esi+292]
'_748
$op 4 4 [esi+796]
$op 4 4 [esi+792]
$op 4 4 [esi+796]
$op 4 4 0
$go 0 [esi+296]
'_749
$go 0 [esi+256]
'_750
sub esp,72
'_751
mov edx,esp
'_752
fldz
'_753
fst qword [edx]
'_754
fst qword [edx+8]
'_755
fst qword [edx+16]
'_756
fst qword [edx+24]
'_757
fst qword [edx+32]
'_758
fst qword [edx+40]
'_759
fst qword [edx+48]
'_760
fstp qword [edx+64]
'_761
mov [edx+8],10
'_762
fild dword [edx+8]
'_763
fstp qword [edx+8]
'_764
mov dword [edx+16],1000
'_765
fld1
'_766
fidiv dword [edx+16]
'_767
fstp qword [edx+16]
'_768
fld1
'_769
fstp qword [edx+56]
'_770
$go 0 [esi+352]
'_774
$op 4 4 12
$op 4 64 0.5
$go 0 drawgrid
'_775
call drawscene
'_780
$op 4 4 [esi+796]
$op 4 4 [esi+792]
$op 4 4 0
$op 4 4 0
$go 0 [esi+292]
'_781
$op 4 4 [esi+796]
$op 4 4 [esi+792]
$op 4 4 0
$op 4 4 0
$go 0 [esi+296]
'_782
$go 0 [esi+256]
'_784
sub esp,72
'_785
mov edx,esp
'_786
fldz
'_787
fst qword [edx]
'_788
fst qword [edx+8]
'_789
fst qword [edx+24]
'_790
fst qword [edx+32]
'_791
fst qword [edx+40]
'_792
fst qword [edx+48]
'_793
fstp qword [edx+64]
'_794
mov [edx+16],10
'_795
fild dword [edx+16]
'_796
fstp qword [edx+16]
'_797
fld1
'_798
fstp qword [edx+56]
'_799
$go 0 [esi+352]
'_802
$op 4 4 12
$op 4 64 0.5
$go 0 drawgrid
'_803
call drawscene
'_807
$op 4 4 [esi+796]
$op 4 4 [esi+792]
$op 4 4 0
$op 4 4 [esi+792]
$go 0 [esi+292]
'_808
$op 4 4 [esi+796]
$op 4 4 [esi+792]
$op 4 4 0
$op 4 4 [esi+792]
$go 0 [esi+296]
'_809
$go 0 [esi+256]
'_810
sub esp,72
'_811
mov edx,esp
'_812
mov [edx],10
'_813
fild dword [edx]
'_814
fstp qword [edx]
'_815
fldz
'_816
fst qword [edx+8]
'_817
fst qword [edx+16]
'_818
fst qword [edx+24]
'_819
fst qword [edx+32]
'_820
fst qword [edx+40]
'_821
fst qword [edx+48]
'_822
fstp qword [edx+64]
'_823
fld1
'_824
fstp qword [edx+56]
'_826
$go 0 [esi+352]
'_830
$op 4 4 12
$op 4 64 0.5
$go 0 drawgrid
'_831
call drawscene
'_834
$op 4 4 0x0B20 
$go 0 [esi+260]
'_835
$op 4 4 0x0BE2 
$go 0 [esi+260]
'_837
.perspec
'_842
$op 4 4 0x1B02  
$op 4 4 0x0408
$go 0 [esi+276]
'_845
$op 4 4 0x0B44 
$go 0 [esi+264]
'_846
$op 4 4 0x0405 
$go 0 [esi+300]
'_847
$op 4 4 0x0900 
$go 0 [esi+304]
'_850
$op 4 4 0x1701 
$go 0 [esi+284]
'_851
$go 0 [esi+256]
'_852
sub esp,32
'_853
mov edx,esp
'_854
mov [edx],65
'_855
fild dword [edx]
'_856
fstp qword [edx]
'_857
fld qword [esi+764]
'_858
fstp qword [edx+8]
'_859
fld1
'_860
fstp qword [edx+16]
'_861
mov [edx+24],50
'_862
fild dword [edx+24]
'_863
fstp qword [edx+24]
'_864
$go 0 [esi+356]
'_865
$op 4 4 0x1700 
$go 0 [esi+284]
'_868
mov ecx,[esi+784]
'_869
shr ecx,1
'_870
mov edx,[esi+788]
'_871
shr edx,1
'_872
$op 1 4 edx
$op 4 4 
$op 1 4 ecx
$op 4 4 
$op 1 4 edx
$op 4 4 
$op 1 4 ecx
$op 4 4 
$go 0 [esi+292]
'_873
mov ecx,[esi+784]
'_874
shr ecx,1
'_875
mov edx,[esi+788]
'_876
shr edx,1
'_877
$op 1 4 edx
$op 4 4 
$op 1 4 ecx
$op 4 4 
$op 1 4 edx
$op 4 4 
$op 1 4 ecx
$op 4 4 
$go 0 [esi+296]
'_878
$go 0 [esi+256]
'_879
sub esp,72
'_880
mov edx,esp
'_881
fldz
'_882
fst qword [edx+24]
'_883
fst qword [edx+32]
'_884
fst qword [edx+40]
'_885
fst qword [edx+48]
'_886
fstp qword [edx+64]
'_887
fld1
'_888
fstp qword [edx+56]
'_889
mov dword [edx],3
'_890
fild dword [edx]
'_891
fst qword [edx]
'_892
fst qword [edx+16]
'_893
fld1
'_894
fadd st0,st0
'_895
fdivp st1,st0
'_896
fstp qword ptr [edx+8]
'_897
$go 0 [esi+352]
'_907
$aa [esi+684]
$op 4 4 edi
$op 4 4 0x1203 
$op 4 4 0x4001 
$go 0 [esi+308]
'_908
$aa [esi+732]
$op 4 4 edi
$op 4 4 0x1200 
$op 4 4 0x4001 
$go 0 [esi+308]
'_909
$aa [esi+700]
$op 4 4 edi
$op 4 4 0x1201 
$op 4 4 0x4001 
$go 0 [esi+308]
'_910
$aa [esi+716]
$op 4 4 edi
$op 4 4 0x1202 
$op 4 4 0x4001 
$go 0 [esi+308]
'_911
$op 4 4 0x4001 
$go 0 [esi+264]
'_912
$op 4 4 0x0B50 
$go 0 [esi+264]
'_915
call drawscene
'_917
$op 4 4 0x0B50 
$go 0 [esi+260]
'_918
$op 4 4 0x0B44 
$go 0 [esi+260]
'_919
$op 4 4 0x0B71 
$go 0 [esi+260]
'_920
$op 4 4 0x0C11 
$go 0 [esi+260]
'_922
.border
'_925

(
'_927
mov eax,[esi+888]
'_928
cmp eax,0
'_929
jle long exit
'_930
cmp eax,2
'_931
jz long exit
'_932
$op 4 4 [esi+788]
$op 4 4 [esi+784]
$op 4 4 0
$op 4 4 0
$go 0 [esi+292]
'_933
$op 4 4 0x1701 
$go 0 [esi+284]
'_934
$go 0 [esi+256]
'_935
sub esp,48
'_936
mov edx,esp
'_937
fldz
'_938
fst qword [edx]
'_939
fst qword [edx+16]
'_940
fstp qword [edx+32]
'_941
fld1
'_942
fst qword [edx+40] ;
'_943
fadd st0,st0
'_944
fst qword [edx+08] ;
'_945
fstp qword [edx+24] ;
'_946
$go 0 [esi+288]
'_947
$op 4 4 0x1700 
$go 0 [esi+284]
'_948
$go 0 [esi+256]
'_949
$op 4 64 0.0
$op 4 64 0.5 
$op 4 64 1.0 
$go 0 [esi+268]
'_950
sub esp,12
'_951
mov edx,esp
'_952
mov eax,[esi+888]
'_953
dec eax
'_954
mov ecx,1
'_955
and ecx,eax
'_956
mov [edx],ecx
'_957
mov ecx,eax
'_958
shr ecx,1  ;
'_959
neg ecx
'_960
add ecx,1
'_961
mov [edx+4],ecx
'_962
fild dword [edx]
'_963
fstp dword [edx]
'_964
fild dword [edx+4]
'_965
fstp dword [edx+4]
'_966
mov dword [edx+8],0
'_967
$go 0 [esi+232]
'_968
$op 4 4 3 
$go 0 [esi+184]
'_969
$op 4 4 0
$op 4 4 0
$go 0 [esi+312]
'_970
$op 4 4 0
$op 4 4 1
$go 0 [esi+312]
'_971
$op 4 4 1
$op 4 4 1
$go 0 [esi+312]
'_972
$op 4 4 1
$op 4 4 0
$go 0 [esi+312]
'_973
$op 4 4 0
$op 4 4 0
$go 0 [esi+312]
'_974
$go 0 [esi+204]
'_975

)
'_976
ret ;
'_985
.next_frame
'_987

(
'_990
mov eax,[esi+816]
'_991
or eax,[esi+820]
'_992
or eax,[esi+824]
'_993
mov dword ptr [esi+824],0
'_994

(
'_995
cmp eax,0
'_996
jz exit
'_1000
$op 4 4 0x4100 
$go 0 [esi+252]
'_1001
call drawallviews
'_1003
$op 4 4 [esi+804]
$go 0 [esi+152]

)
'_1006

(
'_1007
lea edx,[esi+828]
'_1008
mov eax,[edx+8]
'_1009
mov [edx],eax
'_1010
mov eax,[edx+12]
'_1011
mov [edx+4],eax
'_1012

)
'_1013
ret 4
'_1014

)
'_1019
.winmain
'_1033
push ebp
'_1034
mov ebp,esp
'_1036
sub esp,100
'_1038
mov edi,esp
'_1054
mov [edi],48    
'_1055
mov eax,2  ;
'_1057
or eax,1  '
'_1059
mov [edi+04],eax
'_1061
$go 0 fwd here
: .here
: pop eax : sub eax,here : add eax,wndproc
'_1062
mov [edi+08],eax
'_1064
mov [edi+12],0    
'_1065
mov [edi+16],0    
'_1066
mov eax,[ebp+8]
'_1067
mov [edi+20],eax
'_1069
$nm icon=
$op 4 4 32512 
$op 4 4 [ebp+8]
$go 0 [esi+48]
$mv [edi+24],eax
'_1070
$nm cursor=
$op 4 4 32512 
$op 4 4 0
$go 0 [esi+52]
$mv [edi+28],eax
'_1071
$nm background=
$op 4 4 4 
$go 0 [esi+156]
$mv [edi+32],eax
'_1072
mov [edi+36],0
'_1073
o2 8D 83 gc 9
'_1074
mov [edi+40],eax
'_1075
$nm iconsm=
$op 4 4 32512 
$op 4 4 [ebp+8]
$go 0 [esi+48]
$mv [edi+44],eax
'_1076
$op 4 4 edi
$go 0 [esi+60]
'_1078
cmp eax,0
'_1079

(
'_1080
jnz exit '
'_1081
$op 4 4 16 
$qu "Problem"
$op 4 4 eax
$qu "Registration failed"
$op 4 4 eax
$op 4 4 0
$go 0 [esi+64]
'_1082
xor eax,eax '
'_1083
jmp long end_app '
'_1084

)
$va 19 PixelFormatDescriptor pfd
'_1134
mov eax,1
'_1135
shl eax,16
'_1136
add al,40 
'_1137
mov [esi+1012],eax
'_1140
mov eax,4     ;
'_1141
or eax,0x20  ;
'_1142
or eax,1     ;
'_1143
mov [esi+1016],eax ;
'_1144
mov byte [esi+1020],0     ;
'_1145
mov byte [esi+1021],0x20  ;
'_1146
mov byte [esi+1022],0     ;
'_1147
mov byte [esi+1023],0   
'_1148
mov byte [esi+1024],0   
'_1149
mov byte [esi+1025],0   
'_1150
mov byte [esi+1026],0   
'_1151
mov byte [esi+1027],0   
'_1152
mov byte [esi+1028],0   
'_1153
mov byte [esi+1029],0   
'_1154
mov byte [esi+1030],0   
'_1155
mov byte [esi+1031],0   
'_1156
mov byte [esi+1032],0   
'_1157
mov byte [esi+1033],0   
'_1158
mov byte [esi+1034],0   
'_1159
mov byte [esi+1035],16    ;
'_1160
mov byte [esi+1036],1     ;
'_1161
mov byte [esi+1037],0     ;
'_1162
mov byte [esi+1038],0     ;
'_1163
mov byte [esi+1039],0   
'_1164
mov dword [esi+1040],0   
'_1165
mov dword [esi+1044],0   
'_1166
mov dword [esi+1048],0   
'_1172
mov eax,0x10000000    
'_1173
or eax,0x00cf0000 
'_1174
mov [edi+04],eax
'_1175
$nm hwnd=
$op 4 4 0
$op 4 4 [edi+20]
$op 4 4 0
$op 4 4 0
$op 4 4 400
$op 4 4 400
$op 4 4 100
$op 4 4 100
$op 4 4 [edi+04]
$qu "Oxygen Opengl Demo"
$op 4 4 eax
$op 4 4 [edi+40]
$op 4 4 0
$go 0 [esi+68]
$mv [esi+800],eax
'_1178
$nm hdc=
$op 4 4 [esi+800]
$go 0 [esi+132]
$mv [esi+804],eax
'_1179
$nm npixelformat=
$aa [esi+1012]
$op 4 4 edi
$op 4 4 [esi+804]
$go 0 [esi+160]
$mv [esi+808],eax
'_1180
$aa [esi+1012]
$op 4 4 edi
$op 4 4 [esi+808]
$op 4 4 [esi+804]
$go 0 [esi+144]
'_1181
$nm hrc=
$op 4 4 [esi+804]
$go 0 [esi+328]
$mv [esi+812],eax
'_1182
$op 4 4 [esi+812]
$op 4 4 [esi+804]
$go 0 [esi+336]
$va A 4 timerval
'_1186
mov [esi+1052],16  '
'_1187
$op 4 4 0   
$op 4 4 [esi+1052]
$op 4 4 1
$op 4 4 [esi+800]
$go 0 [esi+124]
'_1189
$op 4 4 [ebp+20]
$op 4 4 [esi+800]
$go 0 [esi+76]
'_1190
$op 4 4 [esi+800]
$go 0 [esi+80]
'_1195
add edi,52  ;
'_1196

(
'_1197
$op 4 4 0
$op 4 4 0
$op 4 4 0
$op 4 4 edi
$go 0 [esi+84]
'_1198
cmp eax,0
'_1199
jz exit
'_1200
$op 4 4 edi
$go 0 [esi+88]
'_1201
$op 4 4 edi
$go 0 [esi+92]
'_1202
repeat
'_1203

)
'_1205
$op 4 4 1
$op 4 4 [esi+800]
$go 0 [esi+128]
'_1206
$op 4 4 255 
$op 4 4 1000
$go 0 [esi+176]
'_1207
$op 4 4 0   
$op 4 4 [esi+804]
$go 0 [esi+336]
'_1208
$op 4 4 [esi+812]
$go 0 [esi+332]
'_1209
$op 4 4 [esi+804]
$op 4 4 [esi+800]
$go 0 [esi+136]
'_1211
mov eax,[edi+8] '
'_1213
.end_app
'_1216
mov esp,ebp
'_1217
pop ebp '
'_1218
ret 16  ;
'_1270
.wndproc
'_1273

(
$va 1C 4 hWnd, wMsg, wParam, lParam
'_1278
push ebp '
'_1279
mov ebp,esp
'_1280
push esi
'_1281
push ebx
'_1285
$go 0 fwd here
: .here
: pop eax : sub eax,here : add eax,bssdata
'_1286
mov ebx,[eax+624] ;
'_1287
mov esi,[eax+632] ;
'_1297
mov eax,[ebp+12]
'_1298

(
'_1307

(
'_1308
cmp eax,2 
'_1309
jnz exit
'_1310
$op 4 4 0
$go 0 [esi+96]
'_1311
xor eax,eax
'_1312
jmp long endselect
'_1313

)
'_1315

(
'_1316
cmp eax,0x113 
'_1317
jnz exit
'_1318

(
'_1319
cmp [ebp+16],1
'_1320
jnz exit
'_1321
$op 4 4 [ebp+8]
$go 0 next_frame
'_1322
mov [esi+824],0
'_1323

(
'_1324
cmp [esi+844],0
'_1325
jz exit
'_1326
$op 4 4 0
$go 0 [esi+96]

)
'_1328

)
'_1329
xor eax,eax
'_1330
jmp long endselect
'_1331

)
'_1356

(
'_1357
cmp eax,5 
'_1358
jnz long exit
'_1362
mov eax,[ebp+20]
'_1363
and eax,0xffff
'_1364
mov [esi+784],eax
'_1365
mov eax,[ebp+20]
'_1366
shr eax,16
'_1367
mov [esi+788],eax
'_1377
$op 4 4 0x1701 
$go 0 [esi+284]
'_1378
$go 0 [esi+256]
'_1379
sub esp,32
'_1380
mov edx,esp
'_1381
mov [edx],45
'_1382
fild dword [edx]
'_1383
fstp qword [edx]
'_1384
fild dword [esi+784]
'_1385
fidiv dword [esi+788]
'_1386
fstp qword [edx+08]
'_1387
fld1
'_1388
fstp qword [edx+16]
'_1389
mov [edx+24],100
'_1390
fild dword [edx+24]
'_1391
fstp qword [edx+24]
'_1392
$go 0 [esi+356]
'_1393
$op 4 4 0x1700 
$go 0 [esi+284]
'_1399
mov eax,[esi+784]
'_1400
shr eax,1
'_1401
mov [esi+792],eax
'_1402
mov eax,[esi+788]
'_1403
shr eax,1
'_1404
mov [esi+796],eax
'_1406
mov [esi+824],1
'_1407
xor eax,eax
'_1408
jmp long endselect
'_1409

)
'_1411

(
'_1412
cmp eax,0x100 
'_1413
jnz exit
'_1414
mov [esi+820],1
'_1415

(
'_1416
mov eax,[ebp+16]
'_1417
cmp al,27   '
'_1418
jnz exit
'_1419
$op 4 4 0
$op 4 4 0
$op 4 4 16 
$op 4 4 [ebp+8]
$go 0 [esi+116]

)
'_1421
xor eax,eax '
'_1422
jmp long endselect
'_1423

)
'_1425

(
'_1426
cmp eax,0x101 
'_1427
jnz exit
'_1428
mov [esi+820],0
'_1429
jmp long endselect
'_1430

)
'_1432

(
'_1433
cmp eax,0x201 
'_1434
jnz long exit
'_1436
mov [esi+864],1
'_1437
or [esi+816],2
'_1438
$nm sposx=
$op 1 4 [esi+848]
$mv [esi+856],eax
'_1439
$nm sposy=
$op 1 4 [esi+852]
$mv [esi+860],eax
'_1440
mov eax,[ebp+20]
'_1441
mov [esi+880],eax
'_1442
and [esi+880],0xffff
'_1443
mov [esi+884],eax
'_1444
shr [esi+884],16
'_1446
mov [esi+888],1
'_1447
mov eax,[esi+784]
'_1448
shr eax,1
'_1449
cmp [esi+880],eax
'_1450

(
'_1451
jl exit
'_1452
inc [esi+888]
'_1453

)
'_1454
mov eax,[esi+788]
'_1455
shr eax,1
'_1456
cmp [esi+884],eax
'_1457

(
'_1458
jl exit
'_1459
add [esi+888],2
'_1460

)
'_1461
xor eax,eax '
'_1462
jmp long endselect
'_1463

)
'_1465

(
'_1466
cmp eax,0x202 
'_1467
jnz exit
'_1468
mov [esi+816],0
'_1469
mov [esi+864],0
'_1471
xor eax,eax '
'_1472
jmp long endselect
'_1473

)
'_1475

(
'_1476
cmp eax,0x200 
'_1477
jnz long exit
$va 7 4 x, y 
'_1480
mov [esi+816],1
'_1481
$nm mposx=
$op 1 4 [ebp+20]
$mv [esi+848],eax
'_1482
$nm mposy=
$op 1 4 [ebp+20]
$mv [esi+852],eax
'_1483
and [esi+848],0xffff
'_1484
shr [esi+852],16
'_1486

(
'_1487
cmp [esi+864],1
'_1488
jnz long exit
'_1489
$nm x=
$op 1 4 [esi+848]
$mv [ebp-12],eax
'_1490
$nm y=
$op 1 4 [esi+852]
$mv [ebp-16],eax
'_1492
mov eax,[esi+888]
'_1493

(
'_1494
cmp eax,1  ;
'_1495
jnz exit
'_1496
mov eax,[esi+772]
'_1497
add eax,[ebp-16]
'_1498
sub eax,[esi+884]
'_1499
mov [esi+772],eax
'_1501
mov eax,[esi+780]
'_1502
add eax,[ebp-12]
'_1503
sub eax,[esi+880]
'_1504
mov [esi+780],eax
'_1505
jmp endpselect
'_1509

)
'_1510

(
'_1511
cmp eax,3  ;
'_1512
jnz exit
'_1513
mov eax,[esi+772]
'_1514
add eax,[ebp-16]
'_1515
sub eax,[esi+884]
'_1516
mov [esi+772],eax
'_1518
mov eax,[esi+776]
'_1519
add eax,[ebp-12]
'_1520
sub eax,[esi+880]
'_1521
mov [esi+776],eax
'_1522
jmp endpselect
'_1526

)
'_1527

(
'_1528
cmp eax,4  ;
'_1529
jnz exit
'_1530
mov eax,[esi+776]
'_1531
add eax,[ebp-12]
'_1532
sub eax,[esi+880]
'_1533
mov [esi+776],eax
'_1535
mov eax,[esi+780]
'_1536
add eax,[ebp-16]
'_1537
sub eax,[esi+884]
'_1538
mov [esi+780],eax
'_1539
jmp endpselect
'_1543

)
'_1544

(
'_1547

)
'_1548
.endpselect
'_1551
$nm xpos=
$op 1 4 [ebp-12]
$mv [esi+880],eax
'_1552
$nm ypos=
$op 1 4 [ebp-16]
$mv [esi+884],eax
'_1553

)
'_1554
jmp long endselect
'_1555

)
'_1558
$op 4 4 [ebp+20]
$op 4 4 [ebp+16]
$op 4 4 [ebp+12]
$op 4 4 [ebp+8]
$go 0 [esi+120]

)
'_1560
.endselect
'_1562
pop ebx
'_1563
pop esi
'_1564
mov esp,ebp
'_1565
pop ebp
'_1566
ret 16  ;
'_1568

)
 
