-
Notifications
You must be signed in to change notification settings - Fork 0
/
opaque.asm
2548 lines (2489 loc) · 102 KB
/
opaque.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
_0000000: finit
call word _0000451
mov word [_000041D],0x860
call word _00003E5
call word _0000378
xor ax,ax
mov ds,ax
mov es,ax
mov fs,ax
mov gs,ax
mov edi,[_0000421]
add edi,0x208910
call word _0000AB1
xor ebx,ebx
mov ax,cs
mov bx,0x16c7
movzx eax,ax
shl eax,byte 0x4
add eax,ebx
mov esi,eax
mov edi,[_0000421]
add edi,0x20db54
call word _0000A7D
xor ebx,ebx
mov ax,cs
mov bx,0x195a
movzx eax,ax
shl eax,byte 0x4
add eax,ebx
mov esi,eax
mov edi,[_0000421]
add edi,0x212d98
call word _0000A7D
call word _0000609
mov edi,[_0000421]
add edi,0xb9244
mov eax,0x19821999
call word _0000BF9
mov edi,[_0000421]
add edi,0xf9244
mov eax,0x1499f982
call word _0000BF9
mov edi,[_0000421]
add edi,0x139244
mov eax,0x1098006
call word _0000BF9
mov dword [_0000CBA],0xff
mov edi,[_0000421]
add edi,0x179244
call word _0000C38
mov dword [_0000CBA],0x400
mov edi,[_0000421]
add edi,0x1b9244
call word _0000CC6
mov edi,[_0000421]
add edi,0x1f9244
call word _000118E
mov esi,[_0000421]
add esi,0x208910
mov edi,[_0000421]
add edi,byte +0x0
call word _0000945
mov cx,0x50
_000011F: push cx
mov esi,[_0000421]
add esi,0xb9244
mov edi,[_0000421]
add edi,0xb4000
call word _00009F1
add dword [_0000A6D],byte +0x1
add dword [_0000A71],byte +0x5
mov esi,[_0000421]
add esi,0x208910
mov edi,[_0000421]
add edi,0xb4000
mov cx,0x1491
call word _0000BDF
call word _0000B2E
pop cx
loop _000011F
mov word [_0001561],0x13e3
mov cx,0x80
_000017B: push cx
mov esi,[_0000421]
add esi,0x1f9244
mov edi,[_0000421]
add edi,0xb4000
call word 0x116d
call word _0000B1A
call word _0000B2E
pop cx
loop _000017B
mov esi,[_0000421]
add esi,0x212d98
mov edi,[_0000421]
add edi,0xb4000
mov cx,0x1491
_00001BF: mov eax,[esi]
mov [edi],eax
add esi,byte +0x4
add edi,byte +0x4
loop _00001BF
mov cx,0xa
_00001D4: push cx
call word _0000B2E
pop cx
loop _00001D4
mov word [_0001561],0x1665
mov cx,0x40
_00001E5: push cx
mov esi,[_0000421]
add esi,0x1f9244
mov edi,[_0000421]
add edi,0xb4000
call word 0x116d
call word _0000B1A
call word _0000B2E
pop cx
loop _00001E5
mov esi,[_0000421]
add esi,0x20db54
mov edi,[_0000421]
add edi,0xb4000
mov cx,0x1491
_0000229: mov eax,[esi]
mov [edi],eax
add esi,byte +0x4
add edi,byte +0x4
loop _0000229
mov cx,0xa
_000023E: push cx
call word _0000B2E
pop cx
loop _000023E
mov word [_0001561],0x1693
fldz
fst dword [_0001B0D]
fst dword [_0001B11]
fst dword [_0001B15]
fst dword [_0001AF9]
fstp dword [_0001AFD]
fld dword [_0001AF1]
fchs
fstp dword [_0001B01]
mov cx,0x80
_0000276: push cx
call word 0x1203
add dword [_00012D5],byte +0x2
add dword [_00012D9],byte -0x2
add dword [_00012DD],byte +0x4
mov esi,[_0000421]
add esi,0x1f9244
mov edi,[_0000421]
add edi,0xb4000
call word 0x116d
fld1
fadd dword [_0001B01]
fstp dword [_0001B01]
call word _0000B2E
pop cx
loop _0000276
mov cx,0xa
_00002C1: push cx
mov esi,[_0000421]
add esi,0x208910
mov edi,[_0000421]
add edi,0xb4000
mov cx,0x1491
mov eax,[esi]
mov [edi],eax
add esi,byte +0x4
add edi,byte +0x4
loop _00002DF
call word _0000B2E
pop cx
loop _00002C1
mov cx,0xa
_00002FA: push cx
mov edi,[_0000421]
add edi,0xb4000
mov cx,0x1491
xor eax,eax
_000030E: mov [edi],eax
add edi,byte +0x4
loop _000030E
call word _0000B2E
pop cx
loop _00002FA
_000031E: mov ax,0x3
int 0x10
mov dx,_0000339
call word _000036E
call word _0000425
mov ax,0x4c00
int 0x21
call word _0000425
mov ax,0x4c00
int 0x21
;code <-> fidel^butchers.
_0000339: 636F6465203C2D3E20666964656C5E62757463
_000034C: 686572732E0A0D24
; VSYNC
_0000354: mov edx,0x000003da
_000035A: in al,dx
test al,0x8
jz _000035A
_000035F: in al,dx
test al,0x8
jnz _000035F
ret
; write:string from ds:dx
_0000365: push cs
pop ds
mov ax,0x900
int 0x21
jmp short _0000331
_000036E: push ds
push cs
pop ds
mov ax,0x900
int 0x21
pop ds
ret
_0000378: smsw ax
test ax,0x1
jz _0000386
mov dx,_00004A5
call word _0000365
_0000386: xor eax,eax
xor ebx,ebx
mov ax,cs
mov bx,0x4cf
shl eax,byte 0x4
add eax,ebx
mov [_00003e1],eax
lgdt [_00003DF]
cli
mov eax,cr0
or eax,byte +0x1
mov cr0,eax
jmp short _00003B0
_00003B0: mov ax,0x8
mov ds,ax
mov es,ax
mov fs,ax
mov gs,ax
mov eax,cr0
and eax,byte -0x2
mov cr0,eax
jmp short _00003c7
_00003c7: sti
mov dx,_00004c1
call word _000036E
ret
_00003CF: 0000 add [bx+si],al
_00003D1: 0000 add [bx+si],al
_00003D3: 0000 add [bx+si],al
_00003D5: 0000 add [bx+si],al
_00003D7: FF db 0xff
_00003D8: FF00 inc word [bx+si]
_00003DA: 0000 add [bx+si],al
_00003DC: 92 xchg ax,dx
_00003DD: 8F00 pop word [bx+si]
_00003DF: 1000 adc [bx+si],al
_00003E1: 0000 add [bx+si],al
_00003E3: 0000 add [bx+si],al
_00003E5: mov ax,0x900
mov dx,[_000041D]
call word far [_000047D]
cmp ax,0x1
jz _00003FD
mov dx,_0000498
call word _0000365
_00003FD: push dx
mov dx,_00004B3
call word _000036E
pop dx
mov [_000041F],dx
mov ax,0xc00
call word far [_000047D]
mov [_0000421],bx
mov [_0000423],dx
ret
; varia:le begin
_000041D: dw 0x0000
_000041F: dw 0x0000
_0000421: dw 0x0000
_0000423: dw 0x0000
; varia:le end
_0000425: mov ax,0xd00
mov dx,[_000041F]
call word far [_000047D]
mov ax,0xa00
mov dx,[_000041F]
call word far [_000047D]
cmp ax,0x1
jz _000044A
mov dx,_00004a4
call word _0000365
_000044A: mov dx,_00004C0
call word _000036E
ret
_0000451: mov ax,0x4300
int 0x2f
cmp al,0x80
jz _0000460
mov dx,_0000481
call word _0000365
_0000460: mov ax,0x4310
int 0x2f
mov [_000047D],bx
mov [_000047F],es
mov dx,_00004B2
call word _000036E
xor ax,ax
call word far [_000047D]
ret
_000047D: dw 0000
_000047F: dw 0000
; Where:s XMS driver?!
_0000480: 5768657265277320584D53206472697665723F210A0D24
;_0000481: 5768657265277320584D53206472697665723F210A0D24
; More :MS!
_0000498: 4D6F726520584D53210A0D2424
; V86 e:ror!
_00004A4: 563836206572726F72210A0D2424
;_00004A5: 563836206572726F72210A0D2424
;Malloc:OK.
_00004B2: 4D616C6C6F63204F4B2E0A0D2424
;_00004B3: 4D616C6C6F63204F4B2E0A0D2424
;Triped:into flatmode
_00004C0: 54726970656420696E746F20666C61746D6F64652E2E2E0A0D24
;_00004C1: 54726970656420696E746F20666C61746D6F64652E2E2E0A0D24
_00004DB: xor dword [_000051C],byte +0x1
cmp dword [_000051C],byte +0x1
jz _0000504
mov edi,0xa9680
call word _0000520
call word _0000354
mov dx,0x3d4
mov ax,0x800c
out dx,ax
mov ax,0xd
out dx,ax
jmp short _000051B
_0000504: mov edi,0xa1680
call word _0000520
call word _0000354
mov dx,0x3d4
mov ax,0xc
out dx,ax
mov ax,0xd
out dx,ax
_000051B: ret
; varia:le
_000051C: 0100 add [bx+si],ax
_000051E: 0000 add [bx+si],al
_0000520: mov dx,0x3c4
mov ax,0x102
out dx,ax
push esi
push edi
mov ecx,0x1400
_0000531: mov ah,[esi+0xc]
mov al,[esi+0x8]
shl eax,byte 0x10
mov ah,[esi+0x4]
mov al,[esi]
mov [edi],eax
add esi,byte +0x10
add edi,byte +0x4
dec ecx
jnz _0000531
pop edi
pop esi
inc esi
mov dx,0x3c4
mov ax,0x202
out dx,ax
push esi
push edi
mov ecx,0x1400
_000056B: mov ah,[esi+0xc]
mov al,[esi+0x8]
shl eax,byte 0x10
mov ah,[esi+0x4]
mov al,[esi]
mov [edi],eax
add esi,byte +0x10
add edi,byte +0x4
dec ecx
jnz _000056B
pop edi
pop esi
inc esi
mov dx,0x3c4
mov ax,0x402
out dx,ax
push esi
push edi
mov ecx,0x1400
_00005A5: mov ah,[esi+0xc]
mov al,[esi+0x8]
shl eax,byte 0x10
mov ah,[esi+0x4]
mov al,[esi]
mov [edi],eax
add esi,byte +0x10
add edi,byte +0x4
dec ecx
jnz _00005A5
pop edi
pop esi
inc esi
mov dx,0x3c4
mov ax,0x802
out dx,ax
push esi
push edi
mov ecx,0x1400
_00005DF: mov ah,[esi+0xc]
mov al,[esi+0x8]
shl eax,byte 0x10
mov ah,[esi+0x4]
mov al,[esi]
mov [edi],eax
add esi,byte +0x10
add edi,byte +0x4
dec ecx
jnz _00005DF
pop edi
pop esi
inc esi
ret
; set 0:13 mode
_0000609: mov ax,0x13
int 0x10
mov dx,0x3c4
mov ax,0x604
out dx,ax
mov eax,0xf02
out dx,ax
mov ecx,0x4000
mov edi,0xa0000
xor eax,eax
_000062B: mov [edi],eax
add edi,byte +0x4
dec ecx
jnz _000062B
mov dx,0x3d4
mov ax,0x14
out dx,ax
mov ax,0x9
out dx,ax
mov ax,0xe317
out dx,ax
call word _00007FD
call word _0000745
ret
_000064D: mov eax,0x0
_0000653: mov ebx,0x0
_0000659: push eax
push ebx
and eax,byte +0x7
and ebx,byte +0x7
shl eax,byte 0x3
add ebx,eax
shl ebx,byte 0x2
push eax
push ebx
xor eax,eax
xor ebx,ebx
mov ax,cs
shl eax,byte 0x4
mov bx,_0000845 ;0x945
add eax,ebx
pop ebx
add ebx,eax
pop eax
xor eax,eax
movzx ebp,byte [esi+0x2]
shl ebp,byte 0x2
mov ecx,[cs:bp+0x1c78]
mov edx,[cs:bp+0x2478]
cmp [ebx],edx
jc _00006BA
inc ecx
cmp ecx,byte +0x8
jnz _00006BA
mov ecx,0x7
_00006BA: shl ecx,byte 0x5
or eax,ecx
movzx ebp,byte [esi+0x1]
shl ebp,byte 0x2
mov ecx,[cs:bp+0x1c78]
mov edx,[cs:bp+0x2478]
cmp [ebx],edx
jc _00006EB
inc ecx
cmp ecx,byte +0x8
jnz _00006EB
mov ecx,0x7
_00006EB: shl ecx,byte 0x2
or eax,ecx
movzx ebp,byte [esi]
shl ebp,byte 0x2
mov ecx,[cs:bp+0x2078]
mov edx,[cs:bp+0x2878]
cmp [ebx],edx
jc _000071B
inc ecx
cmp ecx,byte +0x4
jnz _000071B
mov ecx,0x3
_000071B: or eax,ecx
mov [edi],al
add esi,byte +0x4
inc edi
pop ebx
pop eax
inc ebx
cmp ebx,0x140
jnz word _0000659
inc eax
cmp eax,0x100
jnz word _0000653
ret
_0000745: mov ecx,0x100
xor esi,esi
mov si,cs
shl esi,byte 0x4
xor ebx,ebx
mov bx,0x1c78
add esi,ebx
xor ebx,ebx
_0000760: mov [_00007F1],ebx
fild dword [_00007F1]
fdiv dword [_00007F5]
fistp dword [_00007F1]
mov eax,[_00007F1]
shr eax,byte 0x8
mov [esi],eax
mov eax,[_00007F1]
and eax,0xff
shl eax,byte 0x6
shr eax,byte 0x8
mov [esi+0x800],eax
mov [_00007F1],ebx
fild dword [_00007F1]
fdiv dword [_00007F9]
fistp dword [_00007F1]
mov eax,[_00007F1]
shr eax,byte 0x8
mov [esi+0x400],eax
mov eax,[_00007F1]
and eax,0xff
shl eax,byte 0x6
shr eax,byte 0x8
mov [esi+0xc00],eax
add esi,byte +0x4
add ebx,0x100
loop _00007ED
jmp short _00007F0
_00007ED: jmp word _0000760
_00007F0: ret
;variables
_00007F1: 00000000
_00007F5: 66661242
_00007F9: CDCCAA42
_00007FD: mov ecx,0x100
xor eax,eax
mov edx,0x3c8
out dx,al
inc edx
xor ebx,ebx
_0000812: mov eax,ebx
and eax,0xe0
shr eax,byte 0x5
imul eax,eax,byte +0x9
out dx,al
mov eax,ebx
and eax,byte +0x1c
shr eax,byte 0x2
imul eax,eax,byte +0x9
out dx,al
mov eax,ebx
and eax,byte +0x3
imul eax,eax,byte +0x15
out dx,al
inc ebx
loop _0000812
ret
_0000845: 01000000
21000000
09000000
29000000
03000000
23000000
0B000000
2B000000
31000000
11000000
39000000
19000000
33000000
13000000
3B000000
1B000000
0D000000
2D000000
05000000
25000000
0F000000
2F000000
07000000
27000000
3D000000
1D000000
35000000
15000000
3F000000
1F000000
37000000
17000000
04000000
24000000
0C000000
2C000000
02000000
22000000
0A000000
2A000000
34000000
14000000
3C000000
00000000
1C000000
32000000
12000000
3A000000
1A000000
10000000
30000000
08000000
28000000
0E000000
2E000000
06000000
26000000
40000000
20000000
38000000
18000000
3E000000
1E000000
36000000
16000000
_0000945: mov cx,0x03
_0000948: push cx
push esi
push edi
mov cx,0x40
_0000950: push cx
mov cx,0x50
_0000954: push cx
push edi
movzx ax,[esi]
movzx bx,[esi+0x144]
sub bx,ax
mov [_00009AF],bx
movzx ax,[esi+0x4]
movzx bx,[esi+0x148]
sub bx,ax
mov [_00009B3],bx
movzx ax,[esi]
shl ax,byte 0x2
movzx bx,[esi+0x4]
shl bx,byte 0x2
mov ch,0x4
_000098F: push ax
push bx
mov dx,bx
sub dx,ax
shl ax,byte 0x2
mov cl,0x4
_000099A: push ax
sar ax,byte 0x4
mov [edi],al
add edi,byte +0x4
pop ax
add ax,dx
dec cl
jnz _000099A
pop bx
pop ax
add ax,0x1818
add bx,0x1818
add edi,0x4f0
dec ch
jnz _000098F
pop edi
pop cx
add edi,byte +0x10
add esi,byte +0x4
loop _0000954
add esi,byte +0x4
add edi,0xf00
pop cx
loop _00009DD
jmp short _00009E0
_00009DD: jmp word _0000950
_00009E0: pop edi
pop esi
pop cx
inc esi
inc edi
loop _00009ED
jmp short _00009F0
_00009ED: jmp word _0000948
_00009F0: ret
_00009F1: fild dword [_0000A6D]
fmul dword [_0000A79]
fsincos
fimul dword [_0000A71]
fistp word [_0000A5A + 2]
fimul dword [_0000A71]
fistp word [_0000A57 + 1]
fild dword [_0000A6D]
fadd dword [_0000A75]
fmul dword [_0000A79]
fsincos
fimul dword [_0000A71]
fistp word [_0000A66 + 2]
fimul dword [_0000A71]
fistp word [_0000A63 + 1]
mov cx,0x41
mov ax,0x2c3c
mov bx,0x59c
_0000A3F: mov dx,0x51
push ax
push bx
_0000A44: push ax
push bx
mov bl,ah
mov eax,[dword esi+ebx*4]
mov [edi],eax
add edi,byte +0x4
pop bx
pop ax
_0000A57: add ax,0x1818
_0000A5A: add bx,0x1818
dec dx
jnz _0000A44
pop bx
pop ax
_0000A63: add ax,0x1818
_0000A66: add bx,0x1818
loop _0000A3F
ret
_0000A6D: 00000000
_0000A71: 80000000
_0000A75: 00008042
_0000A79: DB0FC93C
_0000A7D: mov ch,0xA4
_0000A7F: mov eax,0x1
mov cl,0x20
_0000A87: xor edx,edx
mov ebx,[esi]
test eax,ebx
jz _0000A99
mov edx,0xffffffff
_0000A99: mov [edi],edx
add edi,byte +0x4
shl eax,1
dec cl
jnz _0000A87
add esi,byte +0x4
dec ch
jnz _0000A7F
ret
_0000AB1: mov ax,0x13
int 0x10
mov ah,0x12
mov bl,0x36
mov al,0x1
push ds
push cs
pop ds
mov dx,_0000B07 ;0xc07
mov ax,0x900
int 0x21
pop ds
mov esi,0xa0000
mov cx,0x41
_0000AD1: push cx
mov cx,0x51
_0000AD5: mov ebx,0x0
mov al,[esi]
cmp al,0x0
jz _0000AE8
mov ebx,0xffffffff
_0000AE8: mov [edi],ebx
add esi,byte +0x1
add edi,byte +0x4
loop _0000AD5
add esi,0xef
pop cx
loop _0000AD1
mov ah,0x12
mov bl,0x36
xor al,al
ret
;opaque
_0000B07: 0A0D or cl,[di]
_0000B09: 0A0D or cl,[di]
_0000B0B: 0A0D or cl,[di]
_0000B0D: 204F70 and [bx+0x70],cl
_0000B10: 61 popaw
_0000B11: 7175 jno 0xb88
_0000B13: 652E2E2E0A0D or cl,[cs:di]
_0000B19: 24
_0000B1A: fld1
fadd dword [_0001B01]
fstp dword [_0001B01]
add dword [_0001B15],byte +0x1
ret
_0000B2E: mov esi,[_0000421]
add esi,0xb4000
mov edi,[_0000421]
add edi,0x50000
call word _0000945
mov esi,[_0000421]
add esi,0x50000
mov edi,[_0000421]
add edi,byte +0x0
mov ecx,0x14000
call word _0000B9F
mov esi,[_0000421]
add esi,byte +0x0
mov edi,[_0000421]
add edi,0xa0000
call word _000064D
mov esi,[_0000421]
add esi,0xa0000
call word _00004DB
mov ax,0x100
int 0x16
jnz word _000031E
ret
_0000B9F: xor ax,ax
xor bx,bx
_0000BA3: mov al,[esi]
mov bl,[edi]
add ax,bx
shr ax,1
mov [edi],al
inc esi
inc edi
mov al,[esi]
mov bl,[edi]
add ax,bx
shr ax,1
mov [edi],al
inc esi
inc edi
mov al,[esi]
mov bl,[edi]
add ax,bx
shr ax,1
mov [edi],al
inc esi
inc edi
inc esi
inc edi
dec ecx
jnz _0000BA3
ret
_0000BDF: cmp dword [esi],byte -0x1
jnz _0000BEE
mov dword [edi],0x0
_0000BEE: add esi,byte +0x4
add edi,byte +0x4
loop _0000BDF
ret
_0000BF9: mov cx,0x20
_0000BFC: push cx
mov cx,0x20
_0000C00: push cx
push edi
mov ch,0x8
_0000C05: mov cl,0x8
_0000C07: mov [edi],eax
add edi,byte +0x4
dec cl
jnz _0000C07
add edi,0x3e0
dec ch
jnz _0000C05
pop edi
add edi,byte +0x20
add eax,0x19821999
pop cx
loop _0000C00
add edi,0x1c00
pop cx
loop _0000BFC
ret
_0000C38: mov cx,0x100
mov dword [_0000CC2],0x0
_0000C45: push cx
mov cx,0x100
mov dword [_0000CBE],0x0
_0000C53: push cx
fld1
fld1
fild dword [_0000CC2]
fmul dword [_0001AED]
fsin
faddp st1
fdiv dword [_0000CB6]
fimul dword [_0000CBA]
fiadd dword [_0000CBE]
fmul dword [_0001AED]
fsin
faddp st1
fdiv dword [_0000CB6]
fimul dword [_0000CBA]
fistp dword [_0001B6B]
mov eax,[_0001B6B]
mov [edi],al
mov [edi+0x1],al
mov [edi+0x2],al
add dword [_0000CBE],byte +0x1
add edi,byte +0x4
pop cx
loop _0000C53
add dword [_0000CC2],byte +0x1
pop cx
loop _0000C45
ret
;variable
_0000CB6: 00
_0000CB7 00
_0000CB8: 00
_0000CB9: 40
;variable
_0000CBA: FF
_0000CBB: 00
_0000CBC: 00
_0000CBD: 00
_0000CBE: 00
_0000CBF: 00
_0000CC0: 00
_0000CC1: 00
_0000CC2: 00
_0000CC3: 00
_0000CC4: 00
_0000CC5: 00