Quake-III-Arena

Quake III Arena GPL Source Release
Log | Files | Refs

cf.sbk (2429B)


      1 .486
      2 .model flat
      3 extrn __fltused:near
      4 extrn __ftol:near
      5 public _main
      6 _TEXT segment
      7 _main:
      8 push ebx
      9 push esi
     10 push edi
     11 push ebp
     12 mov ebp,esp
     13 sub esp,24
     14 cmp dword ptr (20)[ebp],1
     15 jg L2
     16 fld dword ptr (L4)
     17 fstp dword ptr (-16)[ebp]
     18 jmp L3
     19 L2:
     20 mov edi,dword ptr (24)[ebp]
     21 mov edi,dword ptr (4)[edi]
     22 push edi
     23 call _atof
     24 add esp,4
     25 fstp dword ptr (-20)[ebp]
     26 fld dword ptr (-20)[ebp]
     27 fdiv dword ptr (L5)
     28 fstp dword ptr (-16)[ebp]
     29 L3:
     30 mov dword ptr (-4)[ebp],0
     31 L6:
     32 mov edi,dword ptr (-4)[ebp]
     33 lea esi,(1)[edi]
     34 mov dword ptr (-4)[ebp],esi
     35 fld dword ptr (L4)
     36 fstp dword ptr (_f)[edi*4]
     37 L7:
     38 cmp dword ptr (-4)[ebp],127
     39 jle L6
     40 mov dword ptr (-8)[ebp],0
     41 jmp L11
     42 L10:
     43 mov edi,dword ptr (-12)[ebp]
     44 lea edi,(_f)[edi*4]
     45 fld dword ptr [edi]
     46 fadd dword ptr (L13)
     47 fstp dword ptr [edi]
     48 inc dword ptr (-8)[ebp]
     49 L11:
     50 call _getchar
     51 add esp,0
     52 mov dword ptr (-12)[ebp],eax
     53 cmp eax,-1
     54 jne L10
     55 lea edi,(L14)
     56 push edi
     57 call _printf
     58 add esp,4
     59 mov dword ptr (-4)[ebp],0
     60 L15:
     61 mov edi,dword ptr (-4)[ebp]
     62 fld dword ptr (_f)[edi*4]
     63 fstp dword ptr (-24)[ebp]
     64 fld dword ptr (L4)
     65 fcomp dword ptr (-24)[ebp]
     66 fstsw ax
     67 sahf
     68 je L19
     69 fld dword ptr (-24)[ebp]
     70 mov edi,dword ptr (-8)[ebp]
     71 push edi
     72 fild dword ptr 0[esp]
     73 add esp,4
     74 fdivp st(1),st
     75 fld dword ptr (-16)[ebp]
     76 fcompp
     77 fstsw ax
     78 sahf
     79 ja L19
     80 cmp dword ptr (-4)[ebp],32
     81 jg L21
     82 mov edi,dword ptr (-4)[ebp]
     83 push edi
     84 lea edi,(L23)
     85 push edi
     86 call _printf
     87 add esp,8
     88 jmp L22
     89 L21:
     90 mov edi,dword ptr (-4)[ebp]
     91 push edi
     92 lea edi,(L24)
     93 push edi
     94 call _printf
     95 add esp,8
     96 L22:
     97 fld dword ptr (L5)
     98 mov edi,dword ptr (-4)[ebp]
     99 fmul dword ptr (_f)[edi*4]
    100 mov edi,dword ptr (-8)[ebp]
    101 push edi
    102 fild dword ptr 0[esp]
    103 add esp,4
    104 fdivp st(1),st
    105 sub esp,8
    106 fstp qword ptr [esp]
    107 lea edi,(L25)
    108 push edi
    109 call _printf
    110 add esp,12
    111 L19:
    112 L16:
    113 inc dword ptr (-4)[ebp]
    114 cmp dword ptr (-4)[ebp],127
    115 jle L15
    116 mov eax,0
    117 L1:
    118 mov esp,ebp
    119 pop ebp
    120 pop edi
    121 pop esi
    122 pop ebx
    123 ret
    124 _TEXT ends
    125 extrn _printf:near
    126 _TEXT segment
    127 _TEXT ends
    128 extrn _getchar:near
    129 _TEXT segment
    130 _TEXT ends
    131 extrn _atof:near
    132 _TEXT segment
    133 _TEXT ends
    134 _DATA segment
    135 public _f
    136 align 4
    137 _f label byte
    138 db 512 dup (0)
    139 _DATA ends
    140 _TEXT segment
    141 align 1
    142 L25 label byte
    143 db 9
    144 db 37
    145 db 46
    146 db 49
    147 db 102
    148 db 10
    149 db 0
    150 align 1
    151 L24 label byte
    152 db 37
    153 db 99
    154 db 0
    155 align 1
    156 L23 label byte
    157 db 37
    158 db 48
    159 db 51
    160 db 111
    161 db 0
    162 align 1
    163 L14 label byte
    164 db 99
    165 db 104
    166 db 97
    167 db 114
    168 db 9
    169 db 102
    170 db 114
    171 db 101
    172 db 113
    173 db 10
    174 db 0
    175 align 4
    176 L13 label byte
    177 dd 03f800000H
    178 align 4
    179 L5 label byte
    180 dd 042c80000H
    181 align 4
    182 L4 label byte
    183 dd 00H
    184 _TEXT ends
    185 end