public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c/4415: Internal compiler error in extract_insn, at recog.c:2218
@ 2001-09-27 16:46 z0001
  0 siblings, 0 replies; only message in thread
From: z0001 @ 2001-09-27 16:46 UTC (permalink / raw)
  To: gcc-gnats, debian-gcc

>Number:         4415
>Category:       c
>Synopsis:       Compiler fails with message "Internal compiler error in extract_insn, at recog.c:2218"
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Thu Sep 27 16:46:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Luiz-Otavio L. Zorzella
>Release:        3.0.2 20010922 (Debian prerelease) (Debian testing/unstable)
>Organization:
>Environment:
System: Linux purple 2.2.18 #1 Sun Jan 14 08:53:46 PST 2001 i586 unknown
Architecture: i586

	
host: i386-pc-linux-gnu
build: i386-pc-linux-gnu
target: i386-pc-linux-gnu
configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/usr --infodir=/share/info --mandir=/share/man --enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --enable-threads=posix --enable-java-gc=boehm --with-cpp-install-dir=bin --enable-objc-gc i386-linux
>Description:

Hi,

I'm reporting a bug against gcc 3.0 according to the instructions posted. Please let me know if I missed any step. This is a gcc pre-release, so if you are not interested in the bug report, just let me know also.

zorzella@purple:/usr/src/MPlayer-0.50pre1/loader$ /usr/bin/gcc-3.0 -v
Reading specs from /usr/lib/gcc-lib/i386-linux/3.0.2/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/usr --infodir=/share/info --mandir=/share/man --enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --enable-threads=posix --enable-java-gc=boehm --with-cpp-install-dir=bin --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.0.2 20010922 (Debian prerelease)


zorzella@purple:/usr/src/MPlayer-0.50pre1/loader$ /usr/bin/gcc-3.0 -I. -I.. -O4 -march=k6 -mcpu=k6 -pipe -ffast-math -fomit-frame-pointer -I/usr/local/include  -Wmissing-prototypes -Wimplicit-function-declaration -fno-omit-frame-pointer -DWIN32_PATH=\"/usr/lib/win32\" -D__WINE__ -Ddbg_printf=__vprintf -DTRACE=__vprintf  -c win32.c
win32.c:1115:2: warning: #warning FIXME
win32.c:2512: warning: no previous prototype for `expUnknownMFC42_1176'
win32.c:2518: warning: no previous prototype for `expUnknownMFC42_1243'
win32.c: In function `expIsBadWritePtr':
win32.c:2902: Unrecognizable insn:
(insn 87 62 88 (parallel[ 
            (set (reg/v:SI 3 ebx [44])
                (const_int 0 [0x0]))
            (clobber (reg:CC 17 flags))
        ] ) -1 (nil)
    (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))
win32.c:2902: Internal compiler error in extract_insn, at recog.c:2218
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.

.i file pasted here

**********



# 14 "win32.c"
# 1 "../config.h" 1
# 15 "win32.c" 2

# 1 "win32.h" 1



# 1 "/usr/include/time.h" 1 3
# 28 "/usr/include/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 283 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 284 "/usr/include/features.h" 2 3
# 312 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 313 "/usr/include/features.h" 2 3
# 29 "/usr/include/time.h" 2 3
# 38 "/usr/include/time.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 199 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 3
typedef unsigned int size_t;
# 39 "/usr/include/time.h" 2 3



# 1 "/usr/include/bits/time.h" 1 3
# 39 "/usr/include/bits/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 26 "/usr/include/bits/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/bits/types.h" 2 3


# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3


typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;

__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;

typedef __quad_t *__qaddr_t;

typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef __u_long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef __u_int __id_t;

typedef struct
  {
    int __val[2];
  } __fsid_t;


typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;

typedef long int __clock_t;


typedef int __clockid_t;


typedef int __timer_t;






typedef int __key_t;


typedef unsigned short int __ipc_pid_t;



typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;


typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;


typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;


typedef __u_quad_t __ino64_t;


typedef __loff_t __off64_t;


typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;


typedef int __intptr_t;


typedef unsigned int __socklen_t;




# 1 "/usr/include/bits/pthreadtypes.h" 1 3
# 23 "/usr/include/bits/pthreadtypes.h" 3
# 1 "/usr/include/bits/sched.h" 1 3
# 68 "/usr/include/bits/sched.h" 3
struct __sched_param
  {
    int __sched_priority;
  };
# 24 "/usr/include/bits/pthreadtypes.h" 2 3


struct _pthread_fastlock
{
  long int __status;
  int __spinlock;

};



typedef struct _pthread_descr_struct *_pthread_descr;





typedef struct __pthread_attr_s
{
  int __detachstate;
  int __schedpolicy;
  struct __sched_param __schedparam;
  int __inheritsched;
  int __scope;
  size_t __guardsize;
  int __stackaddr_set;
  void *__stackaddr;
  size_t __stacksize;
} pthread_attr_t;



typedef struct
{
  struct _pthread_fastlock __c_lock;
  _pthread_descr __c_waiting;
} pthread_cond_t;



typedef struct
{
  int __dummy;
} pthread_condattr_t;


typedef unsigned int pthread_key_t;





typedef struct
{
  int __m_reserved;
  int __m_count;
  _pthread_descr __m_owner;
  int __m_kind;
  struct _pthread_fastlock __m_lock;
} pthread_mutex_t;



typedef struct
{
  int __mutexkind;
} pthread_mutexattr_t;



typedef int pthread_once_t;
# 140 "/usr/include/bits/pthreadtypes.h" 3
typedef unsigned long int pthread_t;
# 144 "/usr/include/bits/types.h" 2 3
# 40 "/usr/include/bits/time.h" 2 3
extern long int __sysconf (int);
# 43 "/usr/include/time.h" 2 3
# 56 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 57 "/usr/include/time.h" 2 3


typedef __clock_t clock_t;







# 1 "/usr/include/bits/types.h" 1 3
# 68 "/usr/include/time.h" 2 3


typedef __time_t time_t;
# 79 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 80 "/usr/include/time.h" 2 3


typedef __clockid_t clockid_t;
# 91 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 92 "/usr/include/time.h" 2 3


typedef __timer_t timer_t;
# 106 "/usr/include/time.h" 3
struct timespec
  {
    long int tv_sec;
    long int tv_nsec;
  };







struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;


  long int tm_gmtoff;
  __const char *tm_zone;




};




struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };


struct sigevent;
# 163 "/usr/include/time.h" 3
extern clock_t clock (void) ;


extern time_t time (time_t *__timer) ;


extern double difftime (time_t __time1, time_t __time0)
             __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) ;





extern size_t strftime (char *__restrict __s, size_t __maxsize,
                        __const char *__restrict __format,
                        __const struct tm *__restrict __tp) ;
# 194 "/usr/include/time.h" 3
extern struct tm *gmtime (__const time_t *__timer) ;



extern struct tm *localtime (__const time_t *__timer) ;




extern struct tm *gmtime_r (__const time_t *__restrict __timer,
                            struct tm *__restrict __tp) ;



extern struct tm *localtime_r (__const time_t *__restrict __timer,
                               struct tm *__restrict __tp) ;




extern char *asctime (__const struct tm *__tp) ;


extern char *ctime (__const time_t *__timer) ;






extern char *asctime_r (__const struct tm *__restrict __tp,
                        char *__restrict __buf) ;


extern char *ctime_r (__const time_t *__restrict __timer,
                      char *__restrict __buf) ;




extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) ;



extern int daylight;
extern long int timezone;





extern int stime (__const time_t *__when) ;
# 271 "/usr/include/time.h" 3
extern time_t timegm (struct tm *__tp) ;


extern time_t timelocal (struct tm *__tp) ;


extern int dysize (int __year) __attribute__ ((__const__));





extern int nanosleep (__const struct timespec *__requested_time,
                      struct timespec *__remaining) ;



extern int clock_getres (clockid_t __clock_id, struct timespec *__res) ;


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) ;


extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
            ;
# 309 "/usr/include/time.h" 3
extern int timer_create (clockid_t __clock_id,
                         struct sigevent *__restrict __evp,
                         timer_t *__restrict __timerid) ;


extern int timer_delete (timer_t __timerid) ;


extern int timer_settime (timer_t __timerid, int __flags,
                          __const struct itimerspec *__restrict __value,
                          struct itimerspec *__restrict __ovalue) ;


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
            ;


extern int timer_getoverrun (timer_t __timerid) ;
# 5 "win32.h" 2

# 1 "wine/windef.h" 1
# 11 "wine/windef.h"
# 1 "../config.h" 1
# 12 "wine/windef.h" 2
# 149 "wine/windef.h"
typedef void VOID;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned long ULONG;
typedef unsigned char BYTE;
typedef long LONG;
typedef short SHORT;
typedef unsigned short USHORT;
typedef char CHAR;
typedef unsigned char UCHAR;

typedef LONG SCODE;


typedef unsigned short WCHAR;
typedef int WIN_BOOL;
typedef double DATE;
typedef double DOUBLE;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
# 182 "wine/windef.h"
typedef UINT HANDLE;



typedef HANDLE *LPHANDLE;


typedef UINT WPARAM;
typedef LONG LPARAM;
typedef LONG HRESULT;
typedef LONG LRESULT;
typedef WORD ATOM;
typedef WORD CATCHBUF[9];
typedef WORD *LPCATCHBUF;
typedef HANDLE HHOOK;
typedef HANDLE HMONITOR;
typedef DWORD LCID;
typedef WORD LANGID;
typedef DWORD LCTYPE;
typedef float FLOAT;



typedef VOID *PVOID;
typedef const void *PCVOID;
typedef CHAR *PCHAR;
typedef UCHAR *PUCHAR;
typedef BYTE *PBYTE;
typedef WORD *PWORD;
typedef USHORT *PUSHORT;
typedef SHORT *PSHORT;
typedef ULONG *PULONG;
typedef LONG *PLONG;
typedef DWORD *PDWORD;

typedef CHAR *LPSTR;
typedef CHAR *PSTR;
typedef const CHAR *LPCSTR;
typedef const CHAR *PCSTR;
typedef WCHAR *LPWSTR;
typedef WCHAR *PWSTR;
typedef const WCHAR *LPCWSTR;
typedef const WCHAR *PCWSTR;
typedef BYTE *LPBYTE;
typedef WORD *LPWORD;
typedef DWORD *LPDWORD;
typedef LONG *LPLONG;
typedef VOID *LPVOID;
typedef const VOID *LPCVOID;
typedef INT *PINT;
typedef INT *LPINT;
typedef UINT *PUINT;
typedef UINT *LPUINT;
typedef FLOAT *PFLOAT;
typedef FLOAT *LPFLOAT;
typedef WIN_BOOL *PWIN_BOOL;
typedef WIN_BOOL *LPWIN_BOOL;




typedef DWORD SEGPTR;
# 262 "wine/windef.h"
typedef HANDLE HACMDRIVERID; typedef HACMDRIVERID *PHACMDRIVERID; typedef HACMDRIVERID *LPHACMDRIVERID;
typedef HANDLE HACMDRIVER; typedef HACMDRIVER *PHACMDRIVER; typedef HACMDRIVER *LPHACMDRIVER;
typedef HANDLE HACMOBJ; typedef HACMOBJ *PHACMOBJ; typedef HACMOBJ *LPHACMOBJ;
typedef HANDLE HACMSTREAM; typedef HACMSTREAM *PHACMSTREAM; typedef HACMSTREAM *LPHACMSTREAM;
typedef HANDLE HMETAFILEPICT; typedef HMETAFILEPICT *PHMETAFILEPICT; typedef HMETAFILEPICT *LPHMETAFILEPICT;

typedef HANDLE HACCEL; typedef HACCEL *PHACCEL; typedef HACCEL *LPHACCEL;
typedef HANDLE HBITMAP; typedef HBITMAP *PHBITMAP; typedef HBITMAP *LPHBITMAP;
typedef HANDLE HBRUSH; typedef HBRUSH *PHBRUSH; typedef HBRUSH *LPHBRUSH;
typedef HANDLE HCOLORSPACE; typedef HCOLORSPACE *PHCOLORSPACE; typedef HCOLORSPACE *LPHCOLORSPACE;
typedef HANDLE HCURSOR; typedef HCURSOR *PHCURSOR; typedef HCURSOR *LPHCURSOR;
typedef HANDLE HDC; typedef HDC *PHDC; typedef HDC *LPHDC;
typedef HANDLE HDROP; typedef HDROP *PHDROP; typedef HDROP *LPHDROP;
typedef HANDLE HDRVR; typedef HDRVR *PHDRVR; typedef HDRVR *LPHDRVR;
typedef HANDLE HDWP; typedef HDWP *PHDWP; typedef HDWP *LPHDWP;
typedef HANDLE HENHMETAFILE; typedef HENHMETAFILE *PHENHMETAFILE; typedef HENHMETAFILE *LPHENHMETAFILE;
typedef HANDLE HFILE; typedef HFILE *PHFILE; typedef HFILE *LPHFILE;
typedef HANDLE HFONT; typedef HFONT *PHFONT; typedef HFONT *LPHFONT;
typedef HANDLE HICON; typedef HICON *PHICON; typedef HICON *LPHICON;
typedef HANDLE HINSTANCE; typedef HINSTANCE *PHINSTANCE; typedef HINSTANCE *LPHINSTANCE;
typedef HANDLE HKEY; typedef HKEY *PHKEY; typedef HKEY *LPHKEY;
typedef HANDLE HMENU; typedef HMENU *PHMENU; typedef HMENU *LPHMENU;
typedef HANDLE HMETAFILE; typedef HMETAFILE *PHMETAFILE; typedef HMETAFILE *LPHMETAFILE;
typedef HANDLE HMIDI; typedef HMIDI *PHMIDI; typedef HMIDI *LPHMIDI;
typedef HANDLE HMIDIIN; typedef HMIDIIN *PHMIDIIN; typedef HMIDIIN *LPHMIDIIN;
typedef HANDLE HMIDIOUT; typedef HMIDIOUT *PHMIDIOUT; typedef HMIDIOUT *LPHMIDIOUT;
typedef HANDLE HMIDISTRM; typedef HMIDISTRM *PHMIDISTRM; typedef HMIDISTRM *LPHMIDISTRM;
typedef HANDLE HMIXER; typedef HMIXER *PHMIXER; typedef HMIXER *LPHMIXER;
typedef HANDLE HMIXEROBJ; typedef HMIXEROBJ *PHMIXEROBJ; typedef HMIXEROBJ *LPHMIXEROBJ;
typedef HANDLE HMMIO; typedef HMMIO *PHMMIO; typedef HMMIO *LPHMMIO;
typedef HANDLE HPALETTE; typedef HPALETTE *PHPALETTE; typedef HPALETTE *LPHPALETTE;
typedef HANDLE HPEN; typedef HPEN *PHPEN; typedef HPEN *LPHPEN;
typedef HANDLE HQUEUE; typedef HQUEUE *PHQUEUE; typedef HQUEUE *LPHQUEUE;
typedef HANDLE HRGN; typedef HRGN *PHRGN; typedef HRGN *LPHRGN;
typedef HANDLE HRSRC; typedef HRSRC *PHRSRC; typedef HRSRC *LPHRSRC;
typedef HANDLE HTASK; typedef HTASK *PHTASK; typedef HTASK *LPHTASK;
typedef HANDLE HWAVE; typedef HWAVE *PHWAVE; typedef HWAVE *LPHWAVE;
typedef HANDLE HWAVEIN; typedef HWAVEIN *PHWAVEIN; typedef HWAVEIN *LPHWAVEIN;
typedef HANDLE HWAVEOUT; typedef HWAVEOUT *PHWAVEOUT; typedef HWAVEOUT *LPHWAVEOUT;
typedef HANDLE HWINSTA; typedef HWINSTA *PHWINSTA; typedef HWINSTA *LPHWINSTA;
typedef HANDLE HDESK; typedef HDESK *PHDESK; typedef HDESK *LPHDESK;
typedef HANDLE HWND; typedef HWND *PHWND; typedef HWND *LPHWND;
typedef HANDLE HKL; typedef HKL *PHKL; typedef HKL *LPHKL;
typedef HANDLE HIC; typedef HIC *PHIC; typedef HIC *LPHIC;
typedef HANDLE HRASCONN; typedef HRASCONN *PHRASCONN; typedef HRASCONN *LPHRASCONN;



typedef HINSTANCE HMODULE;
typedef HANDLE HGDIOBJ;
typedef HANDLE HGLOBAL;
typedef HANDLE HLOCAL;
typedef HANDLE GLOBALHANDLE;
typedef HANDLE LOCALHANDLE;




typedef WIN_BOOL __attribute__((__stdcall__)) (* DATEFMT_ENUMPROCA)(LPSTR);
typedef WIN_BOOL __attribute__((__stdcall__)) (* DATEFMT_ENUMPROCW)(LPWSTR);

typedef WIN_BOOL __attribute__((__stdcall__)) (*DLGPROC)(HWND,UINT,WPARAM,LPARAM);
typedef LRESULT __attribute__((__stdcall__)) (*DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM);
typedef INT __attribute__((__stdcall__)) (*EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT);
typedef INT __attribute__((__stdcall__)) (*EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT);

typedef LRESULT __attribute__((__stdcall__)) (*FARPROC)();
typedef INT __attribute__((__stdcall__)) (*PROC)();
typedef WIN_BOOL __attribute__((__stdcall__)) (*GRAYSTRINGPROC)(HDC,LPARAM,INT);
typedef LRESULT __attribute__((__stdcall__)) (*HOOKPROC)(INT,WPARAM,LPARAM);
typedef WIN_BOOL __attribute__((__stdcall__)) (*PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
typedef WIN_BOOL __attribute__((__stdcall__)) (*PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);

typedef WIN_BOOL __attribute__((__stdcall__)) (*PROPENUMPROCEXA)(HWND,LPCSTR,HANDLE,LPARAM);
typedef WIN_BOOL __attribute__((__stdcall__)) (*PROPENUMPROCEXW)(HWND,LPCWSTR,HANDLE,LPARAM);

typedef WIN_BOOL __attribute__((__stdcall__)) (* TIMEFMT_ENUMPROCA)(LPSTR);
typedef WIN_BOOL __attribute__((__stdcall__)) (* TIMEFMT_ENUMPROCW)(LPWSTR);

typedef VOID __attribute__((__stdcall__)) (*TIMERPROC)(HWND,UINT,UINT,DWORD);
typedef WIN_BOOL __attribute__((__stdcall__)) (*WNDENUMPROC)(HWND,LPARAM);
typedef LRESULT __attribute__((__stdcall__)) (*WNDPROC)(HWND,UINT,WPARAM,LPARAM);
# 358 "wine/windef.h"
# 1 "wine/windef.h" 1
# 359 "wine/windef.h" 2



typedef short INT16;
typedef unsigned short UINT16;
typedef unsigned short WIN_BOOL16;

typedef UINT16 HANDLE16;
typedef HANDLE16 *LPHANDLE16;

typedef UINT16 WPARAM16;
typedef INT16 *LPINT16;
typedef UINT16 *LPUINT16;







typedef HANDLE16 HACMDRIVERID16; typedef HACMDRIVERID16 *PHACMDRIVERID16; typedef HACMDRIVERID16 *NPHACMDRIVERID16; typedef HACMDRIVERID16 *LPHACMDRIVERID16;
typedef HANDLE16 HACMDRIVER16; typedef HACMDRIVER16 *PHACMDRIVER16; typedef HACMDRIVER16 *NPHACMDRIVER16; typedef HACMDRIVER16 *LPHACMDRIVER16;
typedef HANDLE16 HACMOBJ16; typedef HACMOBJ16 *PHACMOBJ16; typedef HACMOBJ16 *NPHACMOBJ16; typedef HACMOBJ16 *LPHACMOBJ16;
typedef HANDLE16 HACMSTREAM16; typedef HACMSTREAM16 *PHACMSTREAM16; typedef HACMSTREAM16 *NPHACMSTREAM16; typedef HACMSTREAM16 *LPHACMSTREAM16;
typedef HANDLE16 HMETAFILEPICT16; typedef HMETAFILEPICT16 *PHMETAFILEPICT16; typedef HMETAFILEPICT16 *NPHMETAFILEPICT16; typedef HMETAFILEPICT16 *LPHMETAFILEPICT16;

typedef HANDLE16 HACCEL16; typedef HACCEL16 *PHACCEL16; typedef HACCEL16 *NPHACCEL16; typedef HACCEL16 *LPHACCEL16;
typedef HANDLE16 HBITMAP16; typedef HBITMAP16 *PHBITMAP16; typedef HBITMAP16 *NPHBITMAP16; typedef HBITMAP16 *LPHBITMAP16;
typedef HANDLE16 HBRUSH16; typedef HBRUSH16 *PHBRUSH16; typedef HBRUSH16 *NPHBRUSH16; typedef HBRUSH16 *LPHBRUSH16;
typedef HANDLE16 HCOLORSPACE16; typedef HCOLORSPACE16 *PHCOLORSPACE16; typedef HCOLORSPACE16 *NPHCOLORSPACE16; typedef HCOLORSPACE16 *LPHCOLORSPACE16;
typedef HANDLE16 HCURSOR16; typedef HCURSOR16 *PHCURSOR16; typedef HCURSOR16 *NPHCURSOR16; typedef HCURSOR16 *LPHCURSOR16;
typedef HANDLE16 HDC16; typedef HDC16 *PHDC16; typedef HDC16 *NPHDC16; typedef HDC16 *LPHDC16;
typedef HANDLE16 HDROP16; typedef HDROP16 *PHDROP16; typedef HDROP16 *NPHDROP16; typedef HDROP16 *LPHDROP16;
typedef HANDLE16 HDRVR16; typedef HDRVR16 *PHDRVR16; typedef HDRVR16 *NPHDRVR16; typedef HDRVR16 *LPHDRVR16;
typedef HANDLE16 HDWP16; typedef HDWP16 *PHDWP16; typedef HDWP16 *NPHDWP16; typedef HDWP16 *LPHDWP16;
typedef HANDLE16 HENHMETAFILE16; typedef HENHMETAFILE16 *PHENHMETAFILE16; typedef HENHMETAFILE16 *NPHENHMETAFILE16; typedef HENHMETAFILE16 *LPHENHMETAFILE16;
typedef HANDLE16 HFILE16; typedef HFILE16 *PHFILE16; typedef HFILE16 *NPHFILE16; typedef HFILE16 *LPHFILE16;
typedef HANDLE16 HFONT16; typedef HFONT16 *PHFONT16; typedef HFONT16 *NPHFONT16; typedef HFONT16 *LPHFONT16;
typedef HANDLE16 HICON16; typedef HICON16 *PHICON16; typedef HICON16 *NPHICON16; typedef HICON16 *LPHICON16;
typedef HANDLE16 HINSTANCE16; typedef HINSTANCE16 *PHINSTANCE16; typedef HINSTANCE16 *NPHINSTANCE16; typedef HINSTANCE16 *LPHINSTANCE16;
typedef HANDLE16 HKEY16; typedef HKEY16 *PHKEY16; typedef HKEY16 *NPHKEY16; typedef HKEY16 *LPHKEY16;
typedef HANDLE16 HMENU16; typedef HMENU16 *PHMENU16; typedef HMENU16 *NPHMENU16; typedef HMENU16 *LPHMENU16;
typedef HANDLE16 HMETAFILE16; typedef HMETAFILE16 *PHMETAFILE16; typedef HMETAFILE16 *NPHMETAFILE16; typedef HMETAFILE16 *LPHMETAFILE16;
typedef HANDLE16 HMIDI16; typedef HMIDI16 *PHMIDI16; typedef HMIDI16 *NPHMIDI16; typedef HMIDI16 *LPHMIDI16;
typedef HANDLE16 HMIDIIN16; typedef HMIDIIN16 *PHMIDIIN16; typedef HMIDIIN16 *NPHMIDIIN16; typedef HMIDIIN16 *LPHMIDIIN16;
typedef HANDLE16 HMIDIOUT16; typedef HMIDIOUT16 *PHMIDIOUT16; typedef HMIDIOUT16 *NPHMIDIOUT16; typedef HMIDIOUT16 *LPHMIDIOUT16;
typedef HANDLE16 HMIDISTRM16; typedef HMIDISTRM16 *PHMIDISTRM16; typedef HMIDISTRM16 *NPHMIDISTRM16; typedef HMIDISTRM16 *LPHMIDISTRM16;
typedef HANDLE16 HMIXER16; typedef HMIXER16 *PHMIXER16; typedef HMIXER16 *NPHMIXER16; typedef HMIXER16 *LPHMIXER16;
typedef HANDLE16 HMIXEROBJ16; typedef HMIXEROBJ16 *PHMIXEROBJ16; typedef HMIXEROBJ16 *NPHMIXEROBJ16; typedef HMIXEROBJ16 *LPHMIXEROBJ16;
typedef HANDLE16 HMMIO16; typedef HMMIO16 *PHMMIO16; typedef HMMIO16 *NPHMMIO16; typedef HMMIO16 *LPHMMIO16;
typedef HANDLE16 HPALETTE16; typedef HPALETTE16 *PHPALETTE16; typedef HPALETTE16 *NPHPALETTE16; typedef HPALETTE16 *LPHPALETTE16;
typedef HANDLE16 HPEN16; typedef HPEN16 *PHPEN16; typedef HPEN16 *NPHPEN16; typedef HPEN16 *LPHPEN16;
typedef HANDLE16 HQUEUE16; typedef HQUEUE16 *PHQUEUE16; typedef HQUEUE16 *NPHQUEUE16; typedef HQUEUE16 *LPHQUEUE16;
typedef HANDLE16 HRGN16; typedef HRGN16 *PHRGN16; typedef HRGN16 *NPHRGN16; typedef HRGN16 *LPHRGN16;
typedef HANDLE16 HRSRC16; typedef HRSRC16 *PHRSRC16; typedef HRSRC16 *NPHRSRC16; typedef HRSRC16 *LPHRSRC16;
typedef HANDLE16 HTASK16; typedef HTASK16 *PHTASK16; typedef HTASK16 *NPHTASK16; typedef HTASK16 *LPHTASK16;
typedef HANDLE16 HWAVE16; typedef HWAVE16 *PHWAVE16; typedef HWAVE16 *NPHWAVE16; typedef HWAVE16 *LPHWAVE16;
typedef HANDLE16 HWAVEIN16; typedef HWAVEIN16 *PHWAVEIN16; typedef HWAVEIN16 *NPHWAVEIN16; typedef HWAVEIN16 *LPHWAVEIN16;
typedef HANDLE16 HWAVEOUT16; typedef HWAVEOUT16 *PHWAVEOUT16; typedef HWAVEOUT16 *NPHWAVEOUT16; typedef HWAVEOUT16 *LPHWAVEOUT16;
typedef HANDLE16 HWINSTA16; typedef HWINSTA16 *PHWINSTA16; typedef HWINSTA16 *NPHWINSTA16; typedef HWINSTA16 *LPHWINSTA16;
typedef HANDLE16 HDESK16; typedef HDESK16 *PHDESK16; typedef HDESK16 *NPHDESK16; typedef HDESK16 *LPHDESK16;
typedef HANDLE16 HWND16; typedef HWND16 *PHWND16; typedef HWND16 *NPHWND16; typedef HWND16 *LPHWND16;
typedef HANDLE16 HKL16; typedef HKL16 *PHKL16; typedef HKL16 *NPHKL16; typedef HKL16 *LPHKL16;
typedef HANDLE16 HIC16; typedef HIC16 *PHIC16; typedef HIC16 *NPHIC16; typedef HIC16 *LPHIC16;
typedef HANDLE16 HRASCONN16; typedef HRASCONN16 *PHRASCONN16; typedef HRASCONN16 *NPHRASCONN16; typedef HRASCONN16 *LPHRASCONN16;


typedef HINSTANCE16 HMODULE16;
typedef HANDLE16 HGDIOBJ16;
typedef HANDLE16 HGLOBAL16;
typedef HANDLE16 HLOCAL16;


typedef struct
{
    INT16 cx;
    INT16 cy;
} SIZE16, *PSIZE16, *LPSIZE16;



typedef struct
{
    INT16 x;
    INT16 y;
} POINT16, *PPOINT16, *LPPOINT16;



typedef struct
{
    INT16 left;
    INT16 top;
    INT16 right;
    INT16 bottom;
} RECT16, *LPRECT16;



typedef LRESULT __attribute__((__stdcall__)) (*DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM);
typedef WIN_BOOL16 __attribute__((__stdcall__)) (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
typedef INT16 __attribute__((__stdcall__)) (*EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16);
typedef LRESULT __attribute__((__stdcall__)) (*FARPROC16)();
typedef INT16 __attribute__((__stdcall__)) (*PROC16)();
typedef WIN_BOOL16 __attribute__((__stdcall__)) (*GRAYSTRINGPROC16)(HDC16,LPARAM,INT16);
typedef LRESULT __attribute__((__stdcall__)) (*HOOKPROC16)(INT16,WPARAM16,LPARAM);
typedef WIN_BOOL16 __attribute__((__stdcall__)) (*PROPENUMPROC16)(HWND16,SEGPTR,HANDLE16);
typedef VOID __attribute__((__stdcall__)) (*TIMERPROC16)(HWND16,UINT16,UINT16,DWORD);
typedef LRESULT __attribute__((__stdcall__)) (*WNDENUMPROC16)(HWND16,LPARAM);
typedef LRESULT __attribute__((__stdcall__)) (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
# 578 "wine/windef.h"
typedef struct tagSIZE
{
    INT cx;
    INT cy;
} SIZE, *PSIZE, *LPSIZE;


typedef SIZE SIZEL, *PSIZEL, *LPSIZEL;







typedef struct tagPOINT
{
    LONG x;
    LONG y;
} POINT, *PPOINT, *LPPOINT;

typedef struct _POINTL
{
    LONG x;
    LONG y;
} POINTL;
# 614 "wine/windef.h"
typedef struct tagPOINTS
{
        SHORT x;
        SHORT y;
} POINTS, *PPOINTS, *LPPOINTS;






typedef struct tagRECT
{
    short left;
    short top;
    short right;
    short bottom;
} RECT, *PRECT, *LPRECT;
typedef const RECT *LPCRECT;


typedef struct tagRECTL
{
    LONG left;
    LONG top;
    LONG right;
    LONG bottom;
} RECTL, *PRECTL, *LPRECTL;

typedef const RECTL *LPCRECTL;
# 7 "win32.h" 2
# 1 "wine/winbase.h" 1



# 1 "wine/basetsd.h" 1
# 10 "wine/basetsd.h"
# 1 "../config.h" 1
# 11 "wine/basetsd.h" 2
# 31 "wine/basetsd.h"
typedef char __int8;
typedef unsigned char __uint8;

typedef short __int16;
typedef unsigned short __uint16;

typedef int __int32;
typedef unsigned int __uint32;

typedef long long __int64;
typedef unsigned long long __uint64;
# 50 "wine/basetsd.h"
typedef void *__ptr32;
typedef __uint64 __ptr64;





typedef __int32 LONG32;


typedef LONG32 *PLONG32;




typedef __uint32 ULONG32;
typedef __uint32 DWORD32;
typedef __uint32 UINT32;

typedef ULONG32 *PULONG32;
typedef DWORD32 *PDWORD32;
typedef UINT32 *PUINT32;



typedef __int64 LONG64;
typedef __int64 INT64;

typedef LONG64 *PLONG64;
typedef INT64 *PINT64;



typedef __uint64 ULONG64;
typedef __uint64 DWORD64;
typedef __uint64 UINT64;

typedef ULONG64 *PULONG64;
typedef DWORD64 *PDWORD64;
typedef UINT64 *PUINT64;
# 115 "wine/basetsd.h"
typedef __int32 INT_PTR, *PINT_PTR;
typedef __uint32 UINT_PTR, *PUINT_PTR;





typedef __int16 HALF_PTR, *PHALF_PTR;
typedef __uint16 UHALF_PTR, *PUHALF_PTR;





typedef __int32 LONG_PTR, *PLONG_PTR;
typedef __uint32 ULONG_PTR, *PULONG_PTR;
typedef __uint32 DWORD_PTR, *PDWORD_PTR;



typedef INT_PTR SSIZE_T, *PSSIZE_T;
typedef UINT_PTR SIZE_T, *PSIZE_T;
# 5 "wine/winbase.h" 2
# 1 "wine/winnt.h" 1
# 10 "wine/winnt.h"
# 1 "wine/windef.h" 1
# 11 "wine/winnt.h" 2


# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/string.h" 2 3






# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3



extern void *memcpy (void *__restrict __dest,
                     __const void *__restrict __src, size_t __n) ;


extern void *memmove (void *__dest, __const void *__src, size_t __n)
            ;





extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
                      int __c, size_t __n)
            ;




extern void *memset (void *__s, int __c, size_t __n) ;


extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
             __attribute__ ((__pure__));


extern void *memchr (__const void *__s, int __c, size_t __n)
              __attribute__ ((__pure__));
# 77 "/usr/include/string.h" 3
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
            ;

extern char *strncpy (char *__restrict __dest,
                      __const char *__restrict __src, size_t __n) ;


extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
            ;

extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
                      size_t __n) ;


extern int strcmp (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));

extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
             __attribute__ ((__pure__));


extern int strcoll (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));

extern size_t strxfrm (char *__restrict __dest,
                       __const char *__restrict __src, size_t __n) ;
# 120 "/usr/include/string.h" 3
extern char *strdup (__const char *__s) __attribute__ ((__malloc__));
# 155 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__));

extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__));
# 167 "/usr/include/string.h" 3
extern size_t strcspn (__const char *__s, __const char *__reject)
             __attribute__ ((__pure__));


extern size_t strspn (__const char *__s, __const char *__accept)
             __attribute__ ((__pure__));

extern char *strpbrk (__const char *__s, __const char *__accept)
             __attribute__ ((__pure__));

extern char *strstr (__const char *__haystack, __const char *__needle)
             __attribute__ ((__pure__));
# 187 "/usr/include/string.h" 3
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
            ;



extern char *__strtok_r (char *__restrict __s,
                         __const char *__restrict __delim,
                         char **__restrict __save_ptr) ;

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
                       char **__restrict __save_ptr) ;
# 218 "/usr/include/string.h" 3
extern size_t strlen (__const char *__s) __attribute__ ((__pure__));
# 229 "/usr/include/string.h" 3
extern char *strerror (int __errnum) ;



extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;




extern void __bzero (void *__s, size_t __n) ;



extern void bcopy (__const void *__src, void *__dest, size_t __n) ;


extern void bzero (void *__s, size_t __n) ;


extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
             __attribute__ ((__pure__));


extern char *index (__const char *__s, int __c) __attribute__ ((__pure__));


extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__));



extern int ffs (int __i) __attribute__ ((__const__));
# 272 "/usr/include/string.h" 3
extern int strcasecmp (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));


extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
             __attribute__ ((__pure__));
# 294 "/usr/include/string.h" 3
extern char *strsep (char **__restrict __stringp,
                     __const char *__restrict __delim) ;
# 357 "/usr/include/string.h" 3
# 1 "/usr/include/bits/string.h" 1 3
# 358 "/usr/include/string.h" 2 3


# 1 "/usr/include/bits/string2.h" 1 3
# 52 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/endian.h" 1 3
# 22 "/usr/include/endian.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/endian.h" 2 3
# 37 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 38 "/usr/include/endian.h" 2 3
# 53 "/usr/include/bits/string2.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 54 "/usr/include/bits/string2.h" 2 3
# 371 "/usr/include/bits/string2.h" 3
extern void *__rawmemchr (const void *__s, int __c);
# 395 "/usr/include/bits/string2.h" 3
extern __inline char *__strcpy_small (char *, __uint16_t, __uint16_t,
                                      __uint32_t, __uint32_t, size_t);
extern __inline char *
__strcpy_small (char *__dest,
                __uint16_t __src0_2, __uint16_t __src4_2,
                __uint32_t __src0_4, __uint32_t __src4_4,
                size_t __srclen)
{
  union {
    __uint32_t __ui;
    __uint16_t __usi;
    unsigned char __uc;
  } *__u = (void *) __dest;
  switch ((unsigned int) __srclen)
    {
    case 1:
      __u->__uc = '\0';
      break;
    case 2:
      __u->__usi = __src0_2;
      break;
    case 3:
      __u->__usi = __src0_2;
      __u = __extension__ (void *)((char *) __u + 2);
      __u->__uc = '\0';
      break;
    case 4:
      __u->__ui = __src0_4;
      break;
    case 5:
      __u->__ui = __src0_4;
      __u = __extension__ (void *)((char *) __u + 4);
      __u->__uc = '\0';
      break;
    case 6:
      __u->__ui = __src0_4;
      __u = __extension__ (void *)((char *) __u + 4);
      __u->__usi = __src4_2;
      break;
    case 7:
      __u->__ui = __src0_4;
      __u = __extension__ (void *)((char *) __u + 4);
      __u->__usi = __src4_2;
      __u = __extension__ (void *)((char *) __u + 2);
      __u->__uc = '\0';
      break;
    case 8:
      __u->__ui = __src0_4;
      __u = __extension__ (void *)((char *) __u + 4);
      __u->__ui = __src4_4;
      break;
    }
  return __dest;
}
# 873 "/usr/include/bits/string2.h" 3
extern __inline size_t __strcspn_c1 (__const char *__s, char __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, char __reject)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c2 (__const char *__s, char __reject1,
                                     char __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, char __reject1, char __reject2)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
         && __s[__result] != __reject2)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c3 (__const char *__s, char __reject1,
                                     char __reject2, char __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
              char __reject3)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
         && __s[__result] != __reject2 && __s[__result] != __reject3)
    ++__result;
  return __result;
}
# 928 "/usr/include/bits/string2.h" 3
extern __inline size_t __strspn_c1 (__const char *__s, char __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, char __accept)
{
  register size_t __result = 0;

  while (__s[__result] == __accept)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c2 (__const char *__s, char __accept1,
                                    char __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, char __accept1, char __accept2)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c3 (__const char *__s, char __accept1,
                                    char __accept2, char __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2
         || __s[__result] == __accept3)
    ++__result;
  return __result;
}
# 983 "/usr/include/bits/string2.h" 3
extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
                                     int __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}

extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
                                     int __accept2, int __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
              int __accept3)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
         && *__s != __accept3)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1045 "/usr/include/bits/string2.h" 3
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
  char *__result;
  if (__s == ((void *)0))
    __s = *__nextp;
  while (*__s == __sep)
    ++__s;
  if (*__s == '\0')
    __result = ((void *)0);
  else
    {
      __result = __s;
      while (*__s != '\0' && *__s != __sep)
        ++__s;
      if (*__s == '\0')
        *__nextp = __s;
      else
        {
          *__s = '\0';
          *__nextp = __s + 1;
        }
    }
  return __result;
}
# 1095 "/usr/include/bits/string2.h" 3
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return *__s = ((void *)0);
  if (*__retval == __reject)
    *(*__s)++ = '\0';
  else
    if ((*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
      *(*__s)++ = '\0';
    else
      *__s = ((void *)0);
  return __retval;
}

extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return *__s = ((void *)0);
  if (*__retval == __reject1 || *__retval == __reject2)
    *(*__s)++ = '\0';
  else
    {
      register char *__cp = __retval;
      while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
        ++__cp;
      if (*__cp != '\0')
        {
          *__s = __cp;
          *(*__s)++ = '\0';
        }
      else
        *__s = ((void *)0);
    }
  return __retval;
}

extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
                                   char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return *__s = ((void *)0);
  if (*__retval == __reject1 || *__retval == __reject2
      || *__retval == __reject3)
    *(*__s)++ = '\0';
  else
    {
      register char *__cp = __retval;
      while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
             && *__cp != __reject3)
        ++__cp;
      if (*__cp != '\0')
        {
          *__s = __cp;
          *(*__s)++ = '\0';
        }
      else
        *__s = ((void *)0);
    }
  return __retval;
}

extern __inline char *__strsep_g (char **__s, __const char *__reject);
extern __inline char *
__strsep_g (char **__s, __const char *__reject)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return ((void *)0);
  if ((*__s = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (__reject) && ((size_t)(const void *)((__reject) + 1) - (size_t)(const void *)(__reject) == 1) ? ((__a0 = ((__const char *) (__reject))[0], __a0 == '\0') ? ((void) (__retval), ((void *)0)) : ((__a1 = ((__const char *) (__reject))[1], __a1 == '\0') ? (__extension__ (__builtin_constant_p (__a0) && (__a0) == '\0' ? (char *) __rawmemchr (__retval, __a0) : strchr (__retval, __a0))) : ((__a2 = ((__const char *) (__reject))[2], __a2 == '\0') ? __strpbrk_c2 (__retval, __a0, __a1) : (((__const char *) (__reject))[3] == '\0' ? __strpbrk_c3 (__retval, __a0, __a1, __a2) : strpbrk (__retval, __reject))))) : strpbrk (__retval, __reject)); })) != ((void *)0))
    *(*__s)++ = '\0';
  return __retval;
}
# 1188 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/stdlib.h" 2 3







# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
# 527 "/usr/include/stdlib.h" 3
extern void *malloc (size_t __size) __attribute__ ((__malloc__));

extern void *calloc (size_t __nmemb, size_t __size)
             __attribute__ ((__malloc__));
# 1189 "/usr/include/bits/string2.h" 2 3




extern char *__strdup (__const char *__string) __attribute__ ((__malloc__));
# 1212 "/usr/include/bits/string2.h" 3
extern char *__strndup (__const char *__string, size_t __n)
             __attribute__ ((__malloc__));
# 361 "/usr/include/string.h" 2 3
# 14 "wine/winnt.h" 2


# 1 "wine/pshpack1.h" 1
# 17 "wine/winnt.h" 2
# 99 "wine/winnt.h"
typedef BYTE BOOLEAN;
typedef BOOLEAN *PBOOLEAN;

typedef struct _LIST_ENTRY {
  struct _LIST_ENTRY *Flink;
  struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY;

typedef struct _SINGLE_LIST_ENTRY {
  struct _SINGLE_LIST_ENTRY *Next;
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
# 150 "wine/winnt.h"
typedef struct _FLOATING_SAVE_AREA
{
    DWORD ControlWord;
    DWORD StatusWord;
    DWORD TagWord;
    DWORD ErrorOffset;
    DWORD ErrorSelector;
    DWORD DataOffset;
    DWORD DataSelector;
    BYTE RegisterArea[80];
    DWORD Cr0NpxState;
} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;

typedef struct _CONTEXT86
{
    DWORD ContextFlags;


    DWORD Dr0;
    DWORD Dr1;
    DWORD Dr2;
    DWORD Dr3;
    DWORD Dr6;
    DWORD Dr7;


    FLOATING_SAVE_AREA FloatSave;


    DWORD SegGs;
    DWORD SegFs;
    DWORD SegEs;
    DWORD SegDs;


    DWORD Edi;
    DWORD Esi;
    DWORD Ebx;
    DWORD Edx;
    DWORD Ecx;
    DWORD Eax;


    DWORD Ebp;
    DWORD Eip;
    DWORD SegCs;
    DWORD EFlags;
    DWORD Esp;
    DWORD SegSs;
} CONTEXT86;
# 222 "wine/winnt.h"
typedef CONTEXT86 CONTEXT;
# 625 "wine/winnt.h"
typedef CONTEXT *PCONTEXT;
typedef HANDLE *PHANDLE;
# 999 "wine/winnt.h"
typedef struct __EXCEPTION_RECORD
{
    DWORD ExceptionCode;
    DWORD ExceptionFlags;
    struct __EXCEPTION_RECORD *ExceptionRecord;

    LPVOID ExceptionAddress;
    DWORD NumberParameters;
    DWORD ExceptionInformation[15];
} EXCEPTION_RECORD, *PEXCEPTION_RECORD;






typedef struct _EXCEPTION_POINTERS
{
  PEXCEPTION_RECORD ExceptionRecord;
  PCONTEXT ContextRecord;
} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
# 1028 "wine/winnt.h"
struct __EXCEPTION_FRAME;

typedef DWORD (*PEXCEPTION_HANDLER)(PEXCEPTION_RECORD,struct __EXCEPTION_FRAME*,
                                    PCONTEXT,struct __EXCEPTION_FRAME **);

typedef struct __EXCEPTION_FRAME
{
  struct __EXCEPTION_FRAME *Prev;
  PEXCEPTION_HANDLER Handler;
} EXCEPTION_FRAME, *PEXCEPTION_FRAME;

# 1 "wine/poppack.h" 1




#pragma pack()
# 1040 "wine/winnt.h" 2





typedef LONG __attribute__((__stdcall__)) (*PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS ExceptionInfo);
typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;

DWORD __attribute__((__stdcall__)) UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers );
LPTOP_LEVEL_EXCEPTION_FILTER
__attribute__((__stdcall__)) SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter );
# 1060 "wine/winnt.h"
typedef struct _NT_TIB
{
        struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
        PVOID StackBase;
        PVOID StackLimit;
        PVOID SubSystemTib;
        union {
          PVOID FiberData;
          DWORD Version;
        } u;
        PVOID ArbitraryUserPointer;
        struct _NT_TIB *Self;
} NT_TIB, *PNT_TIB;

struct _TEB;
# 1093 "wine/winnt.h"
typedef struct _IMAGE_DOS_HEADER {
    WORD e_magic;
    WORD e_cblp;
    WORD e_cp;
    WORD e_crlc;
    WORD e_cparhdr;
    WORD e_minalloc;
    WORD e_maxalloc;
    WORD e_ss;
    WORD e_sp;
    WORD e_csum;
    WORD e_ip;
    WORD e_cs;
    WORD e_lfarlc;
    WORD e_ovno;
    WORD e_res[4];
    WORD e_oemid;
    WORD e_oeminfo;
    WORD e_res2[10];
    DWORD e_lfanew;
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
# 1126 "wine/winnt.h"
typedef struct
{
    WORD ne_magic;
    BYTE ne_ver;
    BYTE ne_rev;
    WORD ne_enttab;
    WORD ne_cbenttab;
    LONG ne_crc;
    WORD ne_flags;
    WORD ne_autodata;
    WORD ne_heap;
    WORD ne_stack;
    DWORD ne_csip;
    DWORD ne_sssp;
    WORD ne_cseg;
    WORD ne_cmod;
    WORD ne_cbnrestab;
    WORD ne_segtab;
    WORD ne_rsrctab;
    WORD ne_restab;
    WORD ne_modtab;
    WORD ne_imptab;
    DWORD ne_nrestab;
    WORD ne_cmovent;
    WORD ne_align;
    WORD ne_cres;
    BYTE ne_exetyp;
    BYTE ne_flagsothers;
    WORD fastload_offset;
    WORD fastload_length;
    WORD ne_swaparea;
    WORD ne_expver;
} IMAGE_OS2_HEADER,*PIMAGE_OS2_HEADER;

typedef struct _IMAGE_VXD_HEADER {
  WORD e32_magic;
  BYTE e32_border;
  BYTE e32_worder;
  DWORD e32_level;
  WORD e32_cpu;
  WORD e32_os;
  DWORD e32_ver;
  DWORD e32_mflags;
  DWORD e32_mpages;
  DWORD e32_startobj;
  DWORD e32_eip;
  DWORD e32_stackobj;
  DWORD e32_esp;
  DWORD e32_pagesize;
  DWORD e32_lastpagesize;
  DWORD e32_fixupsize;
  DWORD e32_fixupsum;
  DWORD e32_ldrsize;
  DWORD e32_ldrsum;
  DWORD e32_objtab;
  DWORD e32_objcnt;
  DWORD e32_objmap;
  DWORD e32_itermap;
  DWORD e32_rsrctab;
  DWORD e32_rsrccnt;
  DWORD e32_restab;
  DWORD e32_enttab;
  DWORD e32_dirtab;
  DWORD e32_dircnt;
  DWORD e32_fpagetab;
  DWORD e32_frectab;
  DWORD e32_impmod;
  DWORD e32_impmodcnt;
  DWORD e32_impproc;
  DWORD e32_pagesum;
  DWORD e32_datapage;
  DWORD e32_preload;
  DWORD e32_nrestab;
  DWORD e32_cbnrestab;
  DWORD e32_nressum;
  DWORD e32_autodata;
  DWORD e32_debuginfo;
  DWORD e32_debuglen;
  DWORD e32_instpreload;
  DWORD e32_instdemand;
  DWORD e32_heapsize;
  BYTE e32_res3[12];
  DWORD e32_winresoff;
  DWORD e32_winreslen;
  WORD e32_devid;
  WORD e32_ddkver;
} IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER;
# 1286 "wine/winnt.h"
typedef struct _IMAGE_FILE_HEADER {
  WORD Machine;
  WORD NumberOfSections;
  DWORD TimeDateStamp;
  DWORD PointerToSymbolTable;
  DWORD NumberOfSymbols;
  WORD SizeOfOptionalHeader;
  WORD Characteristics;
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

typedef struct _IMAGE_DATA_DIRECTORY {
  DWORD VirtualAddress;
  DWORD Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;



typedef struct _IMAGE_OPTIONAL_HEADER {



  WORD Magic;
  BYTE MajorLinkerVersion;
  BYTE MinorLinkerVersion;
  DWORD SizeOfCode;
  DWORD SizeOfInitializedData;
  DWORD SizeOfUninitializedData;
  DWORD AddressOfEntryPoint;
  DWORD BaseOfCode;
  DWORD BaseOfData;



  DWORD ImageBase;
  DWORD SectionAlignment;
  DWORD FileAlignment;
  WORD MajorOperatingSystemVersion;
  WORD MinorOperatingSystemVersion;
  WORD MajorImageVersion;
  WORD MinorImageVersion;
  WORD MajorSubsystemVersion;
  WORD MinorSubsystemVersion;
  DWORD Win32VersionValue;
  DWORD SizeOfImage;
  DWORD SizeOfHeaders;
  DWORD CheckSum;
  WORD Subsystem;
  WORD DllCharacteristics;
  DWORD SizeOfStackReserve;
  DWORD SizeOfStackCommit;
  DWORD SizeOfHeapReserve;
  DWORD SizeOfHeapCommit;
  DWORD LoaderFlags;
  DWORD NumberOfRvaAndSizes;
  IMAGE_DATA_DIRECTORY DataDirectory[16];
} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;

typedef struct _IMAGE_NT_HEADERS {
  DWORD Signature;
  IMAGE_FILE_HEADER FileHeader;
  IMAGE_OPTIONAL_HEADER OptionalHeader;
} IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS;



typedef struct _IMAGE_SECTION_HEADER {
  BYTE Name[8];
  union {
    DWORD PhysicalAddress;
    DWORD VirtualSize;
  } Misc;
  DWORD VirtualAddress;
  DWORD SizeOfRawData;
  DWORD PointerToRawData;
  DWORD PointerToRelocations;
  DWORD PointerToLinenumbers;
  WORD NumberOfRelocations;
  WORD NumberOfLinenumbers;
  DWORD Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
# 1421 "wine/winnt.h"
# 1 "wine/pshpack2.h" 1
# 1422 "wine/winnt.h" 2

typedef struct _IMAGE_SYMBOL {
    union {
        BYTE ShortName[8];
        struct {
            DWORD Short;
            DWORD Long;
        } Name;
        DWORD LongName[2];
    } N;
    DWORD Value;
    SHORT SectionNumber;
    WORD Type;
    BYTE StorageClass;
    BYTE NumberOfAuxSymbols;
} IMAGE_SYMBOL;
typedef IMAGE_SYMBOL *PIMAGE_SYMBOL;



typedef struct _IMAGE_LINENUMBER {
    union {
        DWORD SymbolTableIndex;
        DWORD VirtualAddress;
    } Type;
    WORD Linenumber;
} IMAGE_LINENUMBER;
typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER;



typedef union _IMAGE_AUX_SYMBOL {
    struct {
        DWORD TagIndex;
        union {
            struct {
                WORD Linenumber;
                WORD Size;
            } LnSz;
           DWORD TotalSize;
        } Misc;
        union {
            struct {
                DWORD PointerToLinenumber;
                DWORD PointerToNextFunction;
            } Function;
            struct {
                WORD Dimension[4];
            } Array;
        } FcnAry;
        WORD TvIndex;
    } Sym;
    struct {
        BYTE Name[18];
    } File;
    struct {
        DWORD Length;
        WORD NumberOfRelocations;
        WORD NumberOfLinenumbers;
        DWORD CheckSum;
        SHORT Number;
        BYTE Selection;
    } Section;
} IMAGE_AUX_SYMBOL;
typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL;



# 1 "wine/poppack.h" 1




#pragma pack()
# 1491 "wine/winnt.h" 2
# 1594 "wine/winnt.h"
typedef struct _IMAGE_EXPORT_DIRECTORY {
        DWORD Characteristics;
        DWORD TimeDateStamp;
        WORD MajorVersion;
        WORD MinorVersion;
        DWORD Name;
        DWORD Base;
        DWORD NumberOfFunctions;
        DWORD NumberOfNames;
        LPDWORD *AddressOfFunctions;
        LPDWORD *AddressOfNames;
        LPWORD *AddressOfNameOrdinals;
} IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY;


typedef struct _IMAGE_IMPORT_BY_NAME {
        WORD Hint;
        BYTE Name[1];
} IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME;


typedef struct _IMAGE_THUNK_DATA {
        union {
                LPBYTE ForwarderString;
                FARPROC Function;
                DWORD Ordinal;
                PIMAGE_IMPORT_BY_NAME AddressOfData;
        } u1;
} IMAGE_THUNK_DATA,*PIMAGE_THUNK_DATA;



typedef struct _IMAGE_IMPORT_DESCRIPTOR {
        union {
                DWORD Characteristics;
                PIMAGE_THUNK_DATA OriginalFirstThunk;
        } u;
        DWORD TimeDateStamp;






        DWORD ForwarderChain;
        DWORD Name;

        PIMAGE_THUNK_DATA FirstThunk;
} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR;





typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR
{
    DWORD TimeDateStamp;
    WORD OffsetModuleName;
    WORD NumberOfModuleForwarderRefs;

} IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR;

typedef struct _IMAGE_BOUND_FORWARDER_REF
{
    DWORD TimeDateStamp;
    WORD OffsetModuleName;
    WORD Reserved;
} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF;

typedef struct _IMAGE_BASE_RELOCATION
{
        DWORD VirtualAddress;
        DWORD SizeOfBlock;
        WORD TypeOffset[1];
} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION;

typedef struct _IMAGE_RELOCATION
{
    union {
        DWORD VirtualAddress;
        DWORD RelocCount;
    } u;
    DWORD SymbolTableIndex;
    WORD Type;
} IMAGE_RELOCATION;
typedef IMAGE_RELOCATION *PIMAGE_RELOCATION;
# 1844 "wine/winnt.h"
typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER
{
    BYTE Name[16];
    BYTE Date[12];
    BYTE UserID[6];
    BYTE GroupID[6];
    BYTE Mode[8];
    BYTE Size[10];
    BYTE EndHeader[2];
} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER;






typedef struct _IMAGE_RESOURCE_DIRECTORY {
        DWORD Characteristics;
        DWORD TimeDateStamp;
        WORD MajorVersion;
        WORD MinorVersion;
        WORD NumberOfNamedEntries;
        WORD NumberOfIdEntries;

} IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY;




typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
        union {
                struct {
                        unsigned NameOffset:31;
                        unsigned NameIsString:1;
                } s;
                DWORD Name;
                WORD Id;
        } u1;
        union {
                DWORD OffsetToData;
                struct {
                        unsigned OffsetToDirectory:31;
                        unsigned DataIsDirectory:1;
                } s;
        } u2;
} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY;


typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {
        WORD Length;
        CHAR NameString[ 1 ];
} IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING;

typedef struct _IMAGE_RESOURCE_DIR_STRING_U {
        WORD Length;
        WCHAR NameString[ 1 ];
} IMAGE_RESOURCE_DIR_STRING_U,*PIMAGE_RESOURCE_DIR_STRING_U;

typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
        DWORD OffsetToData;
        DWORD Size;
        DWORD CodePage;
        DWORD ResourceHandle;
} IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY;


typedef VOID __attribute__((__stdcall__)) (*PIMAGE_TLS_CALLBACK)(
        LPVOID DllHandle,DWORD Reason,LPVOID Reserved
);

typedef struct _IMAGE_TLS_DIRECTORY {
        DWORD StartAddressOfRawData;
        DWORD EndAddressOfRawData;
        LPDWORD AddressOfIndex;
        PIMAGE_TLS_CALLBACK *AddressOfCallBacks;
        DWORD SizeOfZeroFill;
        DWORD Characteristics;
} IMAGE_TLS_DIRECTORY,*PIMAGE_TLS_DIRECTORY;

typedef struct _IMAGE_DEBUG_DIRECTORY {
  DWORD Characteristics;
  DWORD TimeDateStamp;
  WORD MajorVersion;
  WORD MinorVersion;
  DWORD Type;
  DWORD SizeOfData;
  DWORD AddressOfRawData;
  DWORD PointerToRawData;
} IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY;
# 1946 "wine/winnt.h"
typedef struct _IMAGE_COFF_SYMBOLS_HEADER {
  DWORD NumberOfSymbols;
  DWORD LvaToFirstSymbol;
  DWORD NumberOfLinenumbers;
  DWORD LvaToFirstLinenumber;
  DWORD RvaToFirstByteOfCode;
  DWORD RvaToLastByteOfCode;
  DWORD RvaToFirstByteOfData;
  DWORD RvaToLastByteOfData;
} IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER;






typedef struct _FPO_DATA {
  DWORD ulOffStart;
  DWORD cbProcSize;
  DWORD cdwLocals;
  WORD cdwParams;
  unsigned cbProlog : 8;
  unsigned cbRegs : 3;
  unsigned fHasSEH : 1;
  unsigned fUseBP : 1;
  unsigned reserved : 1;
  unsigned cbFrame : 2;
} FPO_DATA, *PFPO_DATA;

typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY {
  DWORD Characteristics;
  DWORD TimeDateStamp;
  WORD MajorVersion;
  WORD MinorVersion;
  DWORD GlobalFlagsClear;
  DWORD GlobalFlagsSet;
  DWORD CriticalSectionDefaultTimeout;
  DWORD DeCommitFreeBlockThreshold;
  DWORD DeCommitTotalFreeThreshold;
  PVOID LockPrefixTable;
  DWORD MaximumAllocationSize;
  DWORD VirtualMemoryThreshold;
  DWORD ProcessHeapFlags;
  DWORD ProcessAffinityMask;
  WORD CSDVersion;
  WORD Reserved1;
  PVOID EditList;
  DWORD Reserved[1];
} IMAGE_LOAD_CONFIG_DIRECTORY, *PIMAGE_LOAD_CONFIG_DIRECTORY;

typedef struct _IMAGE_FUNCTION_ENTRY {
  DWORD StartingAddress;
  DWORD EndingAddress;
  DWORD EndOfPrologue;
} IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY;



typedef struct _IMAGE_SEPARATE_DEBUG_HEADER {
        WORD Signature;
        WORD Flags;
        WORD Machine;
        WORD Characteristics;
        DWORD TimeDateStamp;
        DWORD CheckSum;
        DWORD ImageBase;
        DWORD SizeOfImage;
        DWORD NumberOfSections;
        DWORD ExportedNamesSize;
        DWORD DebugDirectorySize;
        DWORD SectionAlignment;
        DWORD Reserved[ 2 ];
} IMAGE_SEPARATE_DEBUG_HEADER,*PIMAGE_SEPARATE_DEBUG_HEADER;




typedef struct tagMESSAGE_RESOURCE_ENTRY {
        WORD Length;
        WORD Flags;
        BYTE Text[1];
} MESSAGE_RESOURCE_ENTRY,*PMESSAGE_RESOURCE_ENTRY;


typedef struct tagMESSAGE_RESOURCE_BLOCK {
        DWORD LowId;
        DWORD HighId;
        DWORD OffsetToEntries;
} MESSAGE_RESOURCE_BLOCK,*PMESSAGE_RESOURCE_BLOCK;

typedef struct tagMESSAGE_RESOURCE_DATA {
        DWORD NumberOfBlocks;
        MESSAGE_RESOURCE_BLOCK Blocks[ 1 ];
} MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA;
# 2052 "wine/winnt.h"
typedef PVOID PACCESS_TOKEN;





typedef enum _TOKEN_INFORMATION_CLASS {
  TokenUser = 1,
  TokenGroups,
  TokenPrivileges,
  TokenOwner,
  TokenPrimaryGroup,
  TokenDefaultDacl,
  TokenSource,
  TokenType,
  TokenImpersonationLevel,
  TokenStatistics
} TOKEN_INFORMATION_CLASS;




# 1 "wine/pshpack1.h" 1
# 2075 "wine/winnt.h" 2

typedef DWORD ACCESS_MASK, *PACCESS_MASK;

typedef struct _GENERIC_MAPPING {
    ACCESS_MASK GenericRead;
    ACCESS_MASK GenericWrite;
    ACCESS_MASK GenericExecute;
    ACCESS_MASK GenericAll;
} GENERIC_MAPPING, *PGENERIC_MAPPING;



typedef struct {
    BYTE Value[6];
} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;




typedef struct _SID {
    BYTE Revision;
    BYTE SubAuthorityCount;
    SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
    DWORD SubAuthority[1];
} SID,*PSID;
# 2119 "wine/winnt.h"
typedef struct _ACL {
    BYTE AclRevision;
    BYTE Sbz1;
    WORD AclSize;
    WORD AceCount;
    WORD Sbz2;
} ACL, *PACL;
# 2140 "wine/winnt.h"
typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION;
typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;


typedef struct {
    BYTE Revision;
    BYTE Sbz1;
    SECURITY_DESCRIPTOR_CONTROL Control;
    DWORD Owner;
    DWORD Group;
    DWORD Sacl;
    DWORD Dacl;
} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE;

typedef struct {
    BYTE Revision;
    BYTE Sbz1;
    SECURITY_DESCRIPTOR_CONTROL Control;
    PSID Owner;
    PSID Group;
    PACL Sacl;
    PACL Dacl;
} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;



# 1 "wine/poppack.h" 1




#pragma pack()
# 2167 "wine/winnt.h" 2



# 1 "wine/pshpack1.h" 1
# 2171 "wine/winnt.h" 2





typedef struct _SID_AND_ATTRIBUTES {
  PSID Sid;
  DWORD Attributes;
} SID_AND_ATTRIBUTES ;
# 2239 "wine/winnt.h"
typedef struct _TOKEN_USER {
  SID_AND_ATTRIBUTES User;
} TOKEN_USER;





typedef struct _TOKEN_GROUPS {
  DWORD GroupCount;
  SID_AND_ATTRIBUTES Groups[1];
} TOKEN_GROUPS;





typedef union _LARGE_INTEGER {
    struct {
        DWORD LowPart;
        LONG HighPart;
    } s;
    LONGLONG QuadPart;
} LARGE_INTEGER, *LPLARGE_INTEGER, *PLARGE_INTEGER;

typedef union _ULARGE_INTEGER {
    struct {
        DWORD LowPart;
        LONG HighPart;
    } s;
    LONGLONG QuadPart;
} ULARGE_INTEGER, *LPULARGE_INTEGER, *PULARGE_INTEGER;





typedef LARGE_INTEGER LUID,*PLUID;

typedef struct _LUID_AND_ATTRIBUTES {
  LUID Luid;
  DWORD Attributes;
} LUID_AND_ATTRIBUTES;





typedef struct _PRIVILEGE_SET {
    DWORD PrivilegeCount;
    DWORD Control;
    LUID_AND_ATTRIBUTES Privilege[1];
} PRIVILEGE_SET, *PPRIVILEGE_SET;





typedef struct _TOKEN_PRIVILEGES {
  DWORD PrivilegeCount;
  LUID_AND_ATTRIBUTES Privileges[1];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;





typedef struct _TOKEN_OWNER {
  PSID Owner;
} TOKEN_OWNER;





typedef struct _TOKEN_PRIMARY_GROUP {
  PSID PrimaryGroup;
} TOKEN_PRIMARY_GROUP;






typedef struct _TOKEN_DEFAULT_DACL {
  PACL DefaultDacl;
} TOKEN_DEFAULT_DACL;





typedef struct _TOKEN_SOURCE {
  char Sourcename[8];
  LUID SourceIdentifier;
} TOKEN_SOURCE;





typedef enum tagTOKEN_TYPE {
  TokenPrimary = 1,
  TokenImpersonation
} TOKEN_TYPE;





typedef enum _SECURITY_IMPERSONATION_LEVEL {
  SecurityAnonymous,
  SecurityIdentification,
  SecurityImpersonation,
  SecurityDelegation
} SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;


typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,
        * PSECURITY_CONTEXT_TRACKING_MODE;




typedef struct _SECURITY_QUALITY_OF_SERVICE {
  DWORD Length;
  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
  SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
  WIN_BOOL EffectiveOnly;
} SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;





typedef struct _TOKEN_STATISTICS {
  LUID TokenId;
  LUID AuthenticationId;
  LARGE_INTEGER ExpirationTime;
  TOKEN_TYPE TokenType;
  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
  DWORD DynamicCharged;
  DWORD DynamicAvailable;
  DWORD GroupCount;
  DWORD PrivilegeCount;
  LUID ModifiedId;
} TOKEN_STATISTICS;
# 2397 "wine/winnt.h"
typedef struct _ACE_HEADER {
        BYTE AceType;
        BYTE AceFlags;
        WORD AceSize;
} ACE_HEADER,*PACE_HEADER;
# 2427 "wine/winnt.h"
typedef struct _ACCESS_ALLOWED_ACE {
        ACE_HEADER Header;
        DWORD Mask;
        DWORD SidStart;
} ACCESS_ALLOWED_ACE,*PACCESS_ALLOWED_ACE;

typedef struct _ACCESS_DENIED_ACE {
        ACE_HEADER Header;
        DWORD Mask;
        DWORD SidStart;
} ACCESS_DENIED_ACE,*PACCESS_DENIED_ACE;

typedef struct _SYSTEM_AUDIT_ACE {
        ACE_HEADER Header;
        DWORD Mask;
        DWORD SidStart;
} SYSTEM_AUDIT_ACE,*PSYSTEM_AUDIT_ACE;

typedef struct _SYSTEM_ALARM_ACE {
        ACE_HEADER Header;
        DWORD Mask;
        DWORD SidStart;
} SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE;

typedef enum tagSID_NAME_USE {
        SidTypeUser = 1,
        SidTypeGroup,
        SidTypeDomain,
        SidTypeAlias,
        SidTypeWellKnownGroup,
        SidTypeDeletedAccount,
        SidTypeInvalid,
        SidTypeUnknown
} SID_NAME_USE,*PSID_NAME_USE;
# 2663 "wine/winnt.h"
# 1 "wine/poppack.h" 1




#pragma pack()
# 2664 "wine/winnt.h" 2
# 6 "wine/winbase.h" 2
# 1 "wine/winestring.h" 1



# 1 "wine/windef.h" 1
# 5 "wine/winestring.h" 2

LPWSTR __attribute__((__stdcall__)) lstrcpyAtoW(LPWSTR,LPCSTR);
LPSTR __attribute__((__stdcall__)) lstrcpyWtoA(LPSTR,LPCWSTR);
LPWSTR __attribute__((__stdcall__)) lstrcpynAtoW(LPWSTR,LPCSTR,INT);
LPSTR __attribute__((__stdcall__)) lstrcpynWtoA(LPSTR,LPCWSTR,INT);
# 7 "wine/winbase.h" 2
# 1 "wine/pshpack1.h" 1
# 8 "wine/winbase.h" 2






typedef struct tagCOORD {
    INT16 x;
    INT16 y;
} COORD, *LPCOORD;






typedef DWORD __attribute__((__stdcall__)) (*LPTHREAD_START_ROUTINE)(LPVOID);
# 36 "wine/winbase.h"
typedef struct _EXCEPTION_DEBUG_INFO {
    EXCEPTION_RECORD ExceptionRecord;
    DWORD dwFirstChance;
} EXCEPTION_DEBUG_INFO;

typedef struct _CREATE_THREAD_DEBUG_INFO {
    HANDLE hThread;
    LPVOID lpThreadLocalBase;
    LPTHREAD_START_ROUTINE lpStartAddress;
} CREATE_THREAD_DEBUG_INFO;

typedef struct _CREATE_PROCESS_DEBUG_INFO {
    HANDLE hFile;
    HANDLE hProcess;
    HANDLE hThread;
    LPVOID lpBaseOfImage;
    DWORD dwDebugInfoFileOffset;
    DWORD nDebugInfoSize;
    LPVOID lpThreadLocalBase;
    LPTHREAD_START_ROUTINE lpStartAddress;
    LPVOID lpImageName;
    WORD fUnicode;
} CREATE_PROCESS_DEBUG_INFO;

typedef struct _EXIT_THREAD_DEBUG_INFO {
    DWORD dwExitCode;
} EXIT_THREAD_DEBUG_INFO;

typedef struct _EXIT_PROCESS_DEBUG_INFO {
    DWORD dwExitCode;
} EXIT_PROCESS_DEBUG_INFO;

typedef struct _LOAD_DLL_DEBUG_INFO {
    HANDLE hFile;
    LPVOID lpBaseOfDll;
    DWORD dwDebugInfoFileOffset;
    DWORD nDebugInfoSize;
    LPVOID lpImageName;
    WORD fUnicode;
} LOAD_DLL_DEBUG_INFO;

typedef struct _UNLOAD_DLL_DEBUG_INFO {
    LPVOID lpBaseOfDll;
} UNLOAD_DLL_DEBUG_INFO;

typedef struct _OUTPUT_DEBUG_STRING_INFO {
    LPSTR lpDebugStringData;
    WORD fUnicode;
    WORD nDebugStringLength;
} OUTPUT_DEBUG_STRING_INFO;

typedef struct _RIP_INFO {
    DWORD dwError;
    DWORD dwType;
} RIP_INFO;

typedef struct _DEBUG_EVENT {
    DWORD dwDebugEventCode;
    DWORD dwProcessId;
    DWORD dwThreadId;
    union {
        EXCEPTION_DEBUG_INFO Exception;
        CREATE_THREAD_DEBUG_INFO CreateThread;
        CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
        EXIT_THREAD_DEBUG_INFO ExitThread;
        EXIT_PROCESS_DEBUG_INFO ExitProcess;
        LOAD_DLL_DEBUG_INFO LoadDll;
        UNLOAD_DLL_DEBUG_INFO UnloadDll;
        OUTPUT_DEBUG_STRING_INFO DebugString;
        RIP_INFO RipInfo;
    } u;
} DEBUG_EVENT, *LPDEBUG_EVENT;


typedef struct
{
    BYTE cBytes;
    BYTE fFixedDisk;
    WORD nErrCode;
    BYTE reserved[4];
    BYTE szPathName[128];
} OFSTRUCT, *LPOFSTRUCT;
# 161 "wine/winbase.h"
typedef struct _SECURITY_ATTRIBUTES
{
    DWORD nLength;
    LPVOID lpSecurityDescriptor;
    WIN_BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;




typedef struct
{
  DWORD dwLowDateTime;
  DWORD dwHighDateTime;
} FILETIME, *LPFILETIME;



typedef struct
{
    DWORD dwFileAttributes;
    FILETIME ftCreationTime;
    FILETIME ftLastAccessTime;
    FILETIME ftLastWriteTime;
    DWORD nFileSizeHigh;
    DWORD nFileSizeLow;
    DWORD dwReserved0;
    DWORD dwReserved1;
    CHAR cFileName[260];
    CHAR cAlternateFileName[14];
} WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;

typedef struct
{
    DWORD dwFileAttributes;
    FILETIME ftCreationTime;
    FILETIME ftLastAccessTime;
    FILETIME ftLastWriteTime;
    DWORD nFileSizeHigh;
    DWORD nFileSizeLow;
    DWORD dwReserved0;
    DWORD dwReserved1;
    WCHAR cFileName[260];
    WCHAR cAlternateFileName[14];
} WIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;




typedef struct
{
    LPVOID lpData;
    DWORD cbData;
    BYTE cbOverhead;
    BYTE iRegionIndex;
    WORD wFlags;
    union {
        struct {
            HANDLE hMem;
            DWORD dwReserved[3];
        } Block;
        struct {
            DWORD dwCommittedSize;
            DWORD dwUnCommittedSize;
            LPVOID lpFirstBlock;
            LPVOID lpLastBlock;
        } Region;
    } Foo;
} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY;
# 433 "wine/winbase.h"
typedef struct tagMEMORYSTATUS
{
    DWORD dwLength;
    DWORD dwMemoryLoad;
    DWORD dwTotalPhys;
    DWORD dwAvailPhys;
    DWORD dwTotalPageFile;
    DWORD dwAvailPageFile;
    DWORD dwTotalVirtual;
    DWORD dwAvailVirtual;
} MEMORYSTATUS, *LPMEMORYSTATUS;
# 539 "wine/winbase.h"
typedef struct
{
    UINT16 flags;
    DWORD dwOptions __attribute__((packed));
    DWORD dwFilter __attribute__((packed));
    CHAR achAllocModule[8] __attribute__((packed));
    DWORD dwAllocBreak __attribute__((packed));
    DWORD dwAllocCount __attribute__((packed));
} WINDEBUGINFO, *LPWINDEBUGINFO;
# 588 "wine/winbase.h"
typedef struct {
        WORD wYear;
        WORD wMonth;
        WORD wDayOfWeek;
        WORD wDay;
        WORD wHour;
        WORD wMinute;
        WORD wSecond;
        WORD wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;



typedef struct {
        DWORD Internal;
        DWORD InternalHigh;
        DWORD Offset;
        DWORD OffsetHigh;
        HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
# 624 "wine/winbase.h"
typedef struct {
        DWORD cb;
        LPSTR lpReserved;
        LPSTR lpDesktop;
        LPSTR lpTitle;
        DWORD dwX;
        DWORD dwY;
        DWORD dwXSize;
        DWORD dwYSize;
        DWORD dwXCountChars;
        DWORD dwYCountChars;
        DWORD dwFillAttribute;
        DWORD dwFlags;
        WORD wShowWindow;
        WORD cbReserved2;
        BYTE *lpReserved2;
        HANDLE hStdInput;
        HANDLE hStdOutput;
        HANDLE hStdError;
} STARTUPINFOA, *LPSTARTUPINFOA;

typedef struct {
        DWORD cb;
        LPWSTR lpReserved;
        LPWSTR lpDesktop;
        LPWSTR lpTitle;
        DWORD dwX;
        DWORD dwY;
        DWORD dwXSize;
        DWORD dwYSize;
        DWORD dwXCountChars;
        DWORD dwYCountChars;
        DWORD dwFillAttribute;
        DWORD dwFlags;
        WORD wShowWindow;
        WORD cbReserved2;
        BYTE *lpReserved2;
        HANDLE hStdInput;
        HANDLE hStdOutput;
        HANDLE hStdError;
} STARTUPINFOW, *LPSTARTUPINFOW;




typedef struct {
        HANDLE hProcess;
        HANDLE hThread;
        DWORD dwProcessId;
        DWORD dwThreadId;
} PROCESS_INFORMATION,*LPPROCESS_INFORMATION;

typedef struct {
        LONG Bias;
        WCHAR StandardName[32];
        SYSTEMTIME StandardDate;
        LONG StandardBias;
        WCHAR DaylightName[32];
        SYSTEMTIME DaylightDate;
        LONG DaylightBias;
} TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
# 742 "wine/winbase.h"
typedef struct
{
  int dwFileAttributes;
  FILETIME ftCreationTime;
  FILETIME ftLastAccessTime;
  FILETIME ftLastWriteTime;
  int dwVolumeSerialNumber;
  int nFileSizeHigh;
  int nFileSizeLow;
  int nNumberOfLinks;
  int nFileIndexHigh;
  int nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION ;


typedef struct _SYSTEM_POWER_STATUS
{
  WIN_BOOL16 ACLineStatus;
  BYTE BatteryFlag;
  BYTE BatteryLifePercent;
  BYTE reserved;
  DWORD BatteryLifeTime;
  DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;

typedef struct _MEMORY_BASIC_INFORMATION
{
    LPVOID BaseAddress;
    LPVOID AllocationBase;
    DWORD AllocationProtect;
    DWORD RegionSize;
    DWORD State;
    DWORD Protect;
    DWORD Type;
} MEMORY_BASIC_INFORMATION,*LPMEMORY_BASIC_INFORMATION;


typedef WIN_BOOL __attribute__((__stdcall__)) (*CODEPAGE_ENUMPROCA)(LPSTR);
typedef WIN_BOOL __attribute__((__stdcall__)) (*CODEPAGE_ENUMPROCW)(LPWSTR);

typedef WIN_BOOL __attribute__((__stdcall__)) (*LOCALE_ENUMPROCA)(LPSTR);
typedef WIN_BOOL __attribute__((__stdcall__)) (*LOCALE_ENUMPROCW)(LPWSTR);


typedef struct tagSYSTEM_INFO
{
    union {
        DWORD dwOemId;
        struct {
                WORD wProcessorArchitecture;
                WORD wReserved;
        } s;
    } u;
    DWORD dwPageSize;
    LPVOID lpMinimumApplicationAddress;
    LPVOID lpMaximumApplicationAddress;
    DWORD dwActiveProcessorMask;
    DWORD dwNumberOfProcessors;
    DWORD dwProcessorType;
    DWORD dwAllocationGranularity;
    WORD wProcessorLevel;
    WORD wProcessorRevision;
} SYSTEM_INFO, *LPSYSTEM_INFO;







typedef WIN_BOOL __attribute__((__stdcall__)) (*ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG);
typedef WIN_BOOL __attribute__((__stdcall__)) (*ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG);
typedef WIN_BOOL __attribute__((__stdcall__)) (*ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG);
typedef WIN_BOOL __attribute__((__stdcall__)) (*ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG);
typedef WIN_BOOL __attribute__((__stdcall__)) (*ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG);
typedef WIN_BOOL __attribute__((__stdcall__)) (*ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG);
# 829 "wine/winbase.h"
typedef struct _LDT_ENTRY {
    WORD LimitLow;
    WORD BaseLow;
    union {
        struct {
            BYTE BaseMid;
            BYTE Flags1;
            BYTE Flags2;
            BYTE BaseHi;
        } Bytes;
        struct {
            unsigned BaseMid : 8;
            unsigned Type : 5;
            unsigned Dpl : 2;
            unsigned Pres : 1;
            unsigned LimitHi : 4;
            unsigned Sys : 1;
            unsigned Reserved_0 : 1;
            unsigned Default_Big : 1;
            unsigned Granularity : 1;
            unsigned BaseHi : 8;
        } Bits;
    } HighWord;
} LDT_ENTRY, *LPLDT_ENTRY;


typedef enum _GET_FILEEX_INFO_LEVELS {
    GetFileExInfoStandard
} GET_FILEEX_INFO_LEVELS;

typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
    DWORD dwFileAttributes;
    FILETIME ftCreationTime;
    FILETIME ftLastAccessTime;
    FILETIME ftLastWriteTime;
    DWORD nFileSizeHigh;
    DWORD nFileSizeLow;
} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;

typedef struct _DllVersionInfo {
    DWORD cbSize;
    DWORD dwMajorVersion;
    DWORD dwMinorVersion;
    DWORD dwBuildNumber;
    DWORD dwPlatformID;
} DLLVERSIONINFO;





typedef DWORD __attribute__((__stdcall__)) (*LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER,
                                           LARGE_INTEGER, DWORD, DWORD, HANDLE,
                                           HANDLE, LPVOID);
# 989 "wine/winbase.h"
typedef struct {
        LPVOID DebugInfo;
        LONG LockCount;
        LONG RecursionCount;
        HANDLE OwningThread;
        HANDLE LockSemaphore;
        DWORD Reserved;
}CRITICAL_SECTION;





typedef struct {
        DWORD dwOSVersionInfoSize;
        DWORD dwMajorVersion;
        DWORD dwMinorVersion;
        DWORD dwBuildNumber;
        DWORD dwPlatformId;
        CHAR szCSDVersion[128];
} OSVERSIONINFO16;

typedef struct {
        DWORD dwOSVersionInfoSize;
        DWORD dwMajorVersion;
        DWORD dwMinorVersion;
        DWORD dwBuildNumber;
        DWORD dwPlatformId;
        CHAR szCSDVersion[128];
} OSVERSIONINFOA;

typedef struct {
        DWORD dwOSVersionInfoSize;
        DWORD dwMajorVersion;
        DWORD dwMinorVersion;
        DWORD dwBuildNumber;
        DWORD dwPlatformId;
        WCHAR szCSDVersion[128];
} OSVERSIONINFOW;







typedef struct tagCOMSTAT
{
    DWORD status;
    DWORD cbInQue;
    DWORD cbOutQue;
} COMSTAT,*LPCOMSTAT;

typedef struct tagDCB
{
    DWORD DCBlength;
    DWORD BaudRate;
    unsigned fBinary :1;
    unsigned fParity :1;
    unsigned fOutxCtsFlow :1;
    unsigned fOutxDsrFlow :1;
    unsigned fDtrControl :2;
    unsigned fDsrSensitivity :1;
    unsigned fTXContinueOnXoff :1;
    unsigned fOutX :1;
    unsigned fInX :1;
    unsigned fErrorChar :1;
    unsigned fNull :1;
    unsigned fRtsControl :2;
    unsigned fAbortOnError :1;
    unsigned fDummy2 :17;
    WORD wReserved;
    WORD XonLim;
    WORD XoffLim;
    BYTE ByteSize;
    BYTE Parity;
    BYTE StopBits;
    char XonChar;
    char XoffChar;
    char ErrorChar;
    char EofChar;
    char EvtChar;
} DCB, *LPDCB;



typedef struct tagCOMMTIMEOUTS {
        DWORD ReadIntervalTimeout;
        DWORD ReadTotalTimeoutMultiplier;
        DWORD ReadTotalTimeoutConstant;
        DWORD WriteTotalTimeoutMultiplier;
        DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS,*LPCOMMTIMEOUTS;

# 1 "wine/poppack.h" 1




#pragma pack()
# 1084 "wine/winbase.h" 2

typedef void __attribute__((__stdcall__)) (*PAPCFUNC)(ULONG_PTR);
typedef void __attribute__((__stdcall__)) (*PTIMERAPCROUTINE)(LPVOID,DWORD,DWORD);

WIN_BOOL __attribute__((__stdcall__)) ClearCommError(INT,LPDWORD,LPCOMSTAT);
WIN_BOOL __attribute__((__stdcall__)) BuildCommDCBA(LPCSTR,LPDCB);
WIN_BOOL __attribute__((__stdcall__)) BuildCommDCBW(LPCWSTR,LPDCB);

WIN_BOOL __attribute__((__stdcall__)) BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS);
WIN_BOOL __attribute__((__stdcall__)) BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS);

WIN_BOOL __attribute__((__stdcall__)) GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
WIN_BOOL __attribute__((__stdcall__)) SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS);
WIN_BOOL __attribute__((__stdcall__)) GetCommState(INT,LPDCB);
WIN_BOOL __attribute__((__stdcall__)) SetCommState(INT,LPDCB);
WIN_BOOL __attribute__((__stdcall__)) TransmitCommChar(INT,CHAR);
WIN_BOOL __attribute__((__stdcall__)) SetupComm(HANDLE, DWORD, DWORD);
WIN_BOOL __attribute__((__stdcall__)) GetCommProperties(HANDLE, LPDCB *);


WIN_BOOL16 __attribute__((__stdcall__)) GetVersionEx16(OSVERSIONINFO16*);
WIN_BOOL __attribute__((__stdcall__)) GetVersionExA(OSVERSIONINFOA*);
WIN_BOOL __attribute__((__stdcall__)) GetVersionExW(OSVERSIONINFOW*);




void __attribute__((__stdcall__)) DeleteCriticalSection(CRITICAL_SECTION *lpCrit);
void __attribute__((__stdcall__)) EnterCriticalSection(CRITICAL_SECTION *lpCrit);
WIN_BOOL __attribute__((__stdcall__)) TryEnterCriticalSection(CRITICAL_SECTION *lpCrit);
void __attribute__((__stdcall__)) InitializeCriticalSection(CRITICAL_SECTION *lpCrit);
void __attribute__((__stdcall__)) LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
void __attribute__((__stdcall__)) MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit);
WIN_BOOL __attribute__((__stdcall__)) GetProcessWorkingSetSize(HANDLE,LPDWORD,LPDWORD);
DWORD __attribute__((__stdcall__)) QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR);
void __attribute__((__stdcall__)) RaiseException(DWORD,DWORD,DWORD,const LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) SetProcessWorkingSetSize(HANDLE,DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) TerminateProcess(HANDLE,DWORD);
WIN_BOOL __attribute__((__stdcall__)) TerminateThread(HANDLE,DWORD);
WIN_BOOL __attribute__((__stdcall__)) GetExitCodeThread(HANDLE,LPDWORD);
# 1135 "wine/winbase.h"
WIN_BOOL __attribute__((__stdcall__)) GetBinaryTypeA( LPCSTR lpApplicationName, LPDWORD lpBinaryType );
WIN_BOOL __attribute__((__stdcall__)) GetBinaryTypeW( LPCWSTR lpApplicationName, LPDWORD lpBinaryType );


WIN_BOOL16 __attribute__((__stdcall__)) GetWinDebugInfo16(LPWINDEBUGINFO,UINT16);
WIN_BOOL16 __attribute__((__stdcall__)) SetWinDebugInfo16(LPWINDEBUGINFO);



WIN_BOOL __attribute__((__stdcall__)) AttachThreadInput(DWORD,DWORD,WIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPWIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) AdjustTokenPrivileges(HANDLE,WIN_BOOL,LPVOID,DWORD,LPVOID,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
WIN_BOOL __attribute__((__stdcall__)) AllocateLocallyUniqueId(PLUID);
WIN_BOOL __attribute__((__stdcall__)) AllocConsole(void);
WIN_BOOL __attribute__((__stdcall__)) AreFileApisANSI(void);
WIN_BOOL __attribute__((__stdcall__)) BackupEventLogA(HANDLE,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) BackupEventLogW(HANDLE,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) Beep(DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) CancelWaitableTimer(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) ClearEventLogA(HANDLE,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) ClearEventLogW(HANDLE,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) CloseEventLog(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) CloseHandle(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) ContinueDebugEvent(DWORD,DWORD,DWORD);
HANDLE __attribute__((__stdcall__)) ConvertToGlobalHandle(HANDLE hSrc);
WIN_BOOL __attribute__((__stdcall__)) CopyFileA(LPCSTR,LPCSTR,WIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) CopyFileW(LPCWSTR,LPCWSTR,WIN_BOOL);

WIN_BOOL __attribute__((__stdcall__)) CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPWIN_BOOL, DWORD);
WIN_BOOL __attribute__((__stdcall__)) CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPWIN_BOOL, DWORD);

WIN_BOOL __attribute__((__stdcall__)) CopySid(DWORD,PSID,PSID);
INT __attribute__((__stdcall__)) CompareFileTime(LPFILETIME,LPFILETIME);
HANDLE __attribute__((__stdcall__)) CreateEventA(LPSECURITY_ATTRIBUTES,WIN_BOOL,WIN_BOOL,LPCSTR);
HANDLE __attribute__((__stdcall__)) CreateEventW(LPSECURITY_ATTRIBUTES,WIN_BOOL,WIN_BOOL,LPCWSTR);

HANDLE __attribute__((__stdcall__)) CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
                                 DWORD,DWORD,HANDLE);
HANDLE __attribute__((__stdcall__)) CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,
                                 DWORD,DWORD,HANDLE);

HANDLE __attribute__((__stdcall__)) CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,
                                        DWORD,DWORD,LPCSTR);
HANDLE __attribute__((__stdcall__)) CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,
                                        DWORD,DWORD,LPCWSTR);

HANDLE __attribute__((__stdcall__)) CreateMutexA(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCSTR);
HANDLE __attribute__((__stdcall__)) CreateMutexW(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
WIN_BOOL __attribute__((__stdcall__)) CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,
                                    LPSECURITY_ATTRIBUTES,WIN_BOOL,DWORD,LPVOID,LPCSTR,
                                    LPSTARTUPINFOA,LPPROCESS_INFORMATION);
WIN_BOOL __attribute__((__stdcall__)) CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,
                                    LPSECURITY_ATTRIBUTES,WIN_BOOL,DWORD,LPVOID,LPCWSTR,
                                    LPSTARTUPINFOW,LPPROCESS_INFORMATION);

HANDLE __attribute__((__stdcall__)) CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
HANDLE __attribute__((__stdcall__)) CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);

HANDLE __attribute__((__stdcall__)) CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
HANDLE __attribute__((__stdcall__)) CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCSTR);
HANDLE __attribute__((__stdcall__)) CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) DebugActiveProcess(DWORD);
void __attribute__((__stdcall__)) DebugBreak(void);
WIN_BOOL __attribute__((__stdcall__)) DeregisterEventSource(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) DisableThreadLibraryCalls(HMODULE);
WIN_BOOL __attribute__((__stdcall__)) DosDateTimeToFileTime(WORD,WORD,LPFILETIME);
WIN_BOOL __attribute__((__stdcall__)) DuplicateHandle(HANDLE,HANDLE,HANDLE,HANDLE*,DWORD,WIN_BOOL,DWORD);
WIN_BOOL __attribute__((__stdcall__)) EnumDateFormatsA(DATEFMT_ENUMPROCA lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
WIN_BOOL __attribute__((__stdcall__)) EnumDateFormatsW(DATEFMT_ENUMPROCW lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);

WIN_BOOL __attribute__((__stdcall__)) EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,
                                            ENUMRESLANGPROCA,LONG);
WIN_BOOL __attribute__((__stdcall__)) EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,
                                            ENUMRESLANGPROCW,LONG);

WIN_BOOL __attribute__((__stdcall__)) EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,
                                        LONG);
WIN_BOOL __attribute__((__stdcall__)) EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,
                                        LONG);

WIN_BOOL __attribute__((__stdcall__)) EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG);
WIN_BOOL __attribute__((__stdcall__)) EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG);

WIN_BOOL __attribute__((__stdcall__)) EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD);
WIN_BOOL __attribute__((__stdcall__)) EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD);

WIN_BOOL __attribute__((__stdcall__)) EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD);
WIN_BOOL __attribute__((__stdcall__)) EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD);

WIN_BOOL __attribute__((__stdcall__)) EnumTimeFormatsA(TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
WIN_BOOL __attribute__((__stdcall__)) EnumTimeFormatsW(TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);

WIN_BOOL __attribute__((__stdcall__)) EqualSid(PSID, PSID);
WIN_BOOL __attribute__((__stdcall__)) EqualPrefixSid(PSID,PSID);
VOID __attribute__((__stdcall__)) ExitProcess(DWORD) __attribute__((noreturn));
VOID __attribute__((__stdcall__)) ExitThread(DWORD) __attribute__((noreturn));
DWORD __attribute__((__stdcall__)) ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
DWORD __attribute__((__stdcall__)) ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);

WIN_BOOL __attribute__((__stdcall__)) FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD);
WIN_BOOL __attribute__((__stdcall__)) FileTimeToLocalFileTime(const FILETIME*,LPFILETIME);
WIN_BOOL __attribute__((__stdcall__)) FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME);
HANDLE __attribute__((__stdcall__)) FindFirstChangeNotificationA(LPCSTR,WIN_BOOL,DWORD);
HANDLE __attribute__((__stdcall__)) FindFirstChangeNotificationW(LPCWSTR,WIN_BOOL,DWORD);

WIN_BOOL __attribute__((__stdcall__)) FindNextChangeNotification(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) FindCloseChangeNotification(HANDLE);
HRSRC __attribute__((__stdcall__)) FindResourceExA(HMODULE,LPCSTR,LPCSTR,WORD);
HRSRC __attribute__((__stdcall__)) FindResourceExW(HMODULE,LPCWSTR,LPCWSTR,WORD);

WIN_BOOL __attribute__((__stdcall__)) FlushConsoleInputBuffer(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) FlushFileBuffers(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) FlushViewOfFile(LPCVOID, DWORD);
DWORD __attribute__((__stdcall__)) FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR,
                                    DWORD,LPDWORD);
DWORD __attribute__((__stdcall__)) FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR,
                                    DWORD,LPDWORD);

WIN_BOOL __attribute__((__stdcall__)) FreeConsole(void);
WIN_BOOL __attribute__((__stdcall__)) FreeEnvironmentStringsA(LPSTR);
WIN_BOOL __attribute__((__stdcall__)) FreeEnvironmentStringsW(LPWSTR);

PVOID __attribute__((__stdcall__)) FreeSid(PSID);
UINT __attribute__((__stdcall__)) GetACP(void);
LPCSTR __attribute__((__stdcall__)) GetCommandLineA(void);
LPCWSTR __attribute__((__stdcall__)) GetCommandLineW(void);

WIN_BOOL __attribute__((__stdcall__)) GetComputerNameA(LPSTR,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetComputerNameW(LPWSTR,LPDWORD);

UINT __attribute__((__stdcall__)) GetConsoleCP(void);
WIN_BOOL __attribute__((__stdcall__)) GetConsoleMode(HANDLE,LPDWORD);
UINT __attribute__((__stdcall__)) GetConsoleOutputCP(void);
DWORD __attribute__((__stdcall__)) GetConsoleTitleA(LPSTR,DWORD);
DWORD __attribute__((__stdcall__)) GetConsoleTitleW(LPWSTR,DWORD);

WIN_BOOL __attribute__((__stdcall__)) GetCommMask(HANDLE, LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetCommModemStatus(HANDLE, LPDWORD);
HANDLE __attribute__((__stdcall__)) GetCurrentProcess(void);
HANDLE __attribute__((__stdcall__)) GetCurrentThread(void);
INT __attribute__((__stdcall__)) GetDateFormatA(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT);
INT __attribute__((__stdcall__)) GetDateFormatW(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT);

LPSTR __attribute__((__stdcall__)) GetEnvironmentStringsA(void);
LPWSTR __attribute__((__stdcall__)) GetEnvironmentStringsW(void);

DWORD __attribute__((__stdcall__)) GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD);
DWORD __attribute__((__stdcall__)) GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD);

WIN_BOOL __attribute__((__stdcall__)) GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
WIN_BOOL __attribute__((__stdcall__)) GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);

DWORD __attribute__((__stdcall__)) GetFileInformationByHandle(HANDLE,BY_HANDLE_FILE_INFORMATION*);
WIN_BOOL __attribute__((__stdcall__)) GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);

DWORD __attribute__((__stdcall__)) GetFileSize(HANDLE,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME);
DWORD __attribute__((__stdcall__)) GetFileType(HANDLE);
DWORD __attribute__((__stdcall__)) GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);
DWORD __attribute__((__stdcall__)) GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*);

WIN_BOOL __attribute__((__stdcall__)) GetHandleInformation(HANDLE,LPDWORD);
COORD __attribute__((__stdcall__)) GetLargestConsoleWindowSize(HANDLE);
DWORD __attribute__((__stdcall__)) GetLengthSid(PSID);
VOID __attribute__((__stdcall__)) GetLocalTime(LPSYSTEMTIME);
DWORD __attribute__((__stdcall__)) GetLogicalDrives(void);
DWORD __attribute__((__stdcall__)) GetLongPathNameA(LPCSTR,LPSTR,DWORD);
DWORD __attribute__((__stdcall__)) GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);

WIN_BOOL __attribute__((__stdcall__)) GetNumberOfConsoleInputEvents(HANDLE,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetNumberOfConsoleMouseButtons(LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetNumberOfEventLogRecords(HANDLE,PDWORD);
UINT __attribute__((__stdcall__)) GetOEMCP(void);
WIN_BOOL __attribute__((__stdcall__)) GetOldestEventLogRecord(HANDLE,PDWORD);
DWORD __attribute__((__stdcall__)) GetPriorityClass(HANDLE);
DWORD __attribute__((__stdcall__)) GetProcessVersion(DWORD);
WIN_BOOL __attribute__((__stdcall__)) GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPWIN_BOOL,PACL *,LPWIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID *,LPWIN_BOOL);
DWORD __attribute__((__stdcall__)) GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
WIN_BOOL __attribute__((__stdcall__)) GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID *,LPWIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPWIN_BOOL,PACL *,LPWIN_BOOL);
PSID_IDENTIFIER_AUTHORITY __attribute__((__stdcall__)) GetSidIdentifierAuthority(PSID);
DWORD __attribute__((__stdcall__)) GetSidLengthRequired(BYTE);
PDWORD __attribute__((__stdcall__)) GetSidSubAuthority(PSID,DWORD);
PUCHAR __attribute__((__stdcall__)) GetSidSubAuthorityCount(PSID);
DWORD __attribute__((__stdcall__)) GetShortPathNameA(LPCSTR,LPSTR,DWORD);
DWORD __attribute__((__stdcall__)) GetShortPathNameW(LPCWSTR,LPWSTR,DWORD);

HFILE __attribute__((__stdcall__)) GetStdHandle(DWORD);
WIN_BOOL __attribute__((__stdcall__)) GetStringTypeExA(LCID,DWORD,LPCSTR,INT,LPWORD);
WIN_BOOL __attribute__((__stdcall__)) GetStringTypeExW(LCID,DWORD,LPCWSTR,INT,LPWORD);

VOID __attribute__((__stdcall__)) GetSystemInfo(LPSYSTEM_INFO);
WIN_BOOL __attribute__((__stdcall__)) GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
VOID __attribute__((__stdcall__)) GetSystemTime(LPSYSTEMTIME);
VOID __attribute__((__stdcall__)) GetSystemTimeAsFileTime(LPFILETIME);
INT __attribute__((__stdcall__)) GetTimeFormatA(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT);
INT __attribute__((__stdcall__)) GetTimeFormatW(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT);

WIN_BOOL __attribute__((__stdcall__)) GetThreadContext(HANDLE,CONTEXT *);
LCID __attribute__((__stdcall__)) GetThreadLocale(void);
INT __attribute__((__stdcall__)) GetThreadPriority(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY);
WIN_BOOL __attribute__((__stdcall__)) GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
WIN_BOOL __attribute__((__stdcall__)) GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetUserNameA(LPSTR,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetUserNameW(LPWSTR,LPDWORD);

VOID __attribute__((__stdcall__)) GlobalMemoryStatus(LPMEMORYSTATUS);
LPVOID __attribute__((__stdcall__)) HeapAlloc(HANDLE,DWORD,DWORD);
DWORD __attribute__((__stdcall__)) HeapCompact(HANDLE,DWORD);
HANDLE __attribute__((__stdcall__)) HeapCreate(DWORD,DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) HeapDestroy(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) HeapFree(HANDLE,DWORD,LPVOID);
WIN_BOOL __attribute__((__stdcall__)) HeapLock(HANDLE);
LPVOID __attribute__((__stdcall__)) HeapReAlloc(HANDLE,DWORD,LPVOID,DWORD);
DWORD __attribute__((__stdcall__)) HeapSize(HANDLE,DWORD,LPVOID);
WIN_BOOL __attribute__((__stdcall__)) HeapUnlock(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) HeapValidate(HANDLE,DWORD,LPCVOID);
WIN_BOOL __attribute__((__stdcall__)) HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY);
WIN_BOOL __attribute__((__stdcall__)) InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
WIN_BOOL __attribute__((__stdcall__)) IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
WIN_BOOL __attribute__((__stdcall__)) IsValidSid(PSID);
WIN_BOOL __attribute__((__stdcall__)) ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
WIN_BOOL __attribute__((__stdcall__)) IsDBCSLeadByteEx(UINT,BYTE);
WIN_BOOL __attribute__((__stdcall__)) IsProcessorFeaturePresent(DWORD);
WIN_BOOL __attribute__((__stdcall__)) IsValidLocale(DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) LookupAccountSidA(LPCSTR,PSID,LPSTR,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE);
WIN_BOOL __attribute__((__stdcall__)) LookupAccountSidW(LPCWSTR,PSID,LPWSTR,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE);

WIN_BOOL __attribute__((__stdcall__)) LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
WIN_BOOL __attribute__((__stdcall__)) LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);
WIN_BOOL __attribute__((__stdcall__)) LookupPrivilegeValueA(LPCSTR,LPCSTR,LPVOID);
WIN_BOOL __attribute__((__stdcall__)) LookupPrivilegeValueW(LPCWSTR,LPCWSTR,LPVOID);

WIN_BOOL __attribute__((__stdcall__)) MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD);
HMODULE __attribute__((__stdcall__)) MapHModuleSL(HMODULE16);
HMODULE16 __attribute__((__stdcall__)) MapHModuleLS(HMODULE);
SEGPTR __attribute__((__stdcall__)) MapLS(LPVOID);
LPVOID __attribute__((__stdcall__)) MapSL(SEGPTR);
LPVOID __attribute__((__stdcall__)) MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
LPVOID __attribute__((__stdcall__)) MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPVOID);
WIN_BOOL __attribute__((__stdcall__)) MoveFileA(LPCSTR,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) MoveFileW(LPCWSTR,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) MoveFileExA(LPCSTR,LPCSTR,DWORD);
WIN_BOOL __attribute__((__stdcall__)) MoveFileExW(LPCWSTR,LPCWSTR,DWORD);

INT __attribute__((__stdcall__)) MultiByteToWideChar(UINT,DWORD,LPCSTR,INT,LPWSTR,INT);
WIN_BOOL __attribute__((__stdcall__)) NotifyChangeEventLog(HANDLE,HANDLE);
INT __attribute__((__stdcall__)) WideCharToMultiByte(UINT,DWORD,LPCWSTR,INT,LPSTR,INT,LPCSTR,WIN_BOOL*);
HANDLE __attribute__((__stdcall__)) OpenBackupEventLogA(LPCSTR,LPCSTR);
HANDLE __attribute__((__stdcall__)) OpenBackupEventLogW(LPCWSTR,LPCWSTR);

HANDLE __attribute__((__stdcall__)) OpenEventA(DWORD,WIN_BOOL,LPCSTR);
HANDLE __attribute__((__stdcall__)) OpenEventW(DWORD,WIN_BOOL,LPCWSTR);

HANDLE __attribute__((__stdcall__)) OpenEventLogA(LPCSTR,LPCSTR);
HANDLE __attribute__((__stdcall__)) OpenEventLogW(LPCWSTR,LPCWSTR);

HANDLE __attribute__((__stdcall__)) OpenFileMappingA(DWORD,WIN_BOOL,LPCSTR);
HANDLE __attribute__((__stdcall__)) OpenFileMappingW(DWORD,WIN_BOOL,LPCWSTR);

HANDLE __attribute__((__stdcall__)) OpenMutexA(DWORD,WIN_BOOL,LPCSTR);
HANDLE __attribute__((__stdcall__)) OpenMutexW(DWORD,WIN_BOOL,LPCWSTR);

HANDLE __attribute__((__stdcall__)) OpenProcess(DWORD,WIN_BOOL,DWORD);
WIN_BOOL __attribute__((__stdcall__)) OpenProcessToken(HANDLE,DWORD,PHANDLE);
HANDLE __attribute__((__stdcall__)) OpenSemaphoreA(DWORD,WIN_BOOL,LPCSTR);
HANDLE __attribute__((__stdcall__)) OpenSemaphoreW(DWORD,WIN_BOOL,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) OpenThreadToken(HANDLE,DWORD,WIN_BOOL,PHANDLE);
HANDLE __attribute__((__stdcall__)) OpenWaitableTimerA(DWORD,WIN_BOOL,LPCSTR);
HANDLE __attribute__((__stdcall__)) OpenWaitableTimerW(DWORD,WIN_BOOL,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) PulseEvent(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) PurgeComm(HANDLE,DWORD);
DWORD __attribute__((__stdcall__)) QueryDosDeviceA(LPCSTR,LPSTR,DWORD);
DWORD __attribute__((__stdcall__)) QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD);

WIN_BOOL __attribute__((__stdcall__)) QueryPerformanceCounter(PLARGE_INTEGER);
WIN_BOOL __attribute__((__stdcall__)) ReadConsoleA(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID);
WIN_BOOL __attribute__((__stdcall__)) ReadConsoleW(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID);

WIN_BOOL __attribute__((__stdcall__)) ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,
                                                 COORD,LPDWORD);

WIN_BOOL __attribute__((__stdcall__)) ReadEventLogA(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);
WIN_BOOL __attribute__((__stdcall__)) ReadEventLogW(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *);

WIN_BOOL __attribute__((__stdcall__)) ReadFile(HANDLE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
HANDLE __attribute__((__stdcall__)) RegisterEventSourceA(LPCSTR,LPCSTR);
HANDLE __attribute__((__stdcall__)) RegisterEventSourceW(LPCWSTR,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) ReleaseMutex(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) ReleaseSemaphore(HANDLE,LONG,LPLONG);
WIN_BOOL __attribute__((__stdcall__)) ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR *,LPVOID);
WIN_BOOL __attribute__((__stdcall__)) ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR *,LPVOID);

WIN_BOOL __attribute__((__stdcall__)) ResetEvent(HANDLE);
DWORD __attribute__((__stdcall__)) ResumeThread(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) RevertToSelf(void);
DWORD __attribute__((__stdcall__)) SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
DWORD __attribute__((__stdcall__)) SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);

WIN_BOOL __attribute__((__stdcall__)) SetCommMask(INT,DWORD);
WIN_BOOL __attribute__((__stdcall__)) SetComputerNameA(LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) SetComputerNameW(LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) SetConsoleCursorPosition(HANDLE,COORD);
WIN_BOOL __attribute__((__stdcall__)) SetConsoleMode(HANDLE,DWORD);
WIN_BOOL __attribute__((__stdcall__)) SetConsoleTitleA(LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) SetConsoleTitleW(LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) SetEndOfFile(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) SetEnvironmentVariableA(LPCSTR,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) SetEnvironmentVariableW(LPCWSTR,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) SetEvent(HANDLE);
VOID __attribute__((__stdcall__)) SetFileApisToANSI(void);
VOID __attribute__((__stdcall__)) SetFileApisToOEM(void);
DWORD __attribute__((__stdcall__)) SetFilePointer(HANDLE,LONG,LPLONG,DWORD);
WIN_BOOL __attribute__((__stdcall__)) SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
WIN_BOOL __attribute__((__stdcall__)) SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);

WIN_BOOL __attribute__((__stdcall__)) SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*);
WIN_BOOL __attribute__((__stdcall__)) SetHandleInformation(HANDLE,DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) SetPriorityClass(HANDLE,DWORD);
WIN_BOOL __attribute__((__stdcall__)) SetLocalTime(const SYSTEMTIME*);
WIN_BOOL __attribute__((__stdcall__)) SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,WIN_BOOL,PACL,WIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,WIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,WIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,WIN_BOOL,PACL,WIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) SetStdHandle(DWORD,HANDLE);
WIN_BOOL __attribute__((__stdcall__)) SetSystemPowerState(WIN_BOOL,WIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) SetSystemTime(const SYSTEMTIME*);
DWORD __attribute__((__stdcall__)) SetThreadAffinityMask(HANDLE,DWORD);
WIN_BOOL __attribute__((__stdcall__)) SetThreadContext(HANDLE,const CONTEXT *);
WIN_BOOL __attribute__((__stdcall__)) SetThreadLocale(LCID);
WIN_BOOL __attribute__((__stdcall__)) SetThreadPriority(HANDLE,INT);
WIN_BOOL __attribute__((__stdcall__)) SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION);
WIN_BOOL __attribute__((__stdcall__)) SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,WIN_BOOL);
VOID __attribute__((__stdcall__)) Sleep(DWORD);
DWORD __attribute__((__stdcall__)) SleepEx(DWORD,WIN_BOOL);
DWORD __attribute__((__stdcall__)) SuspendThread(HANDLE);
WIN_BOOL __attribute__((__stdcall__)) SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
DWORD __attribute__((__stdcall__)) TlsAlloc(void);
WIN_BOOL __attribute__((__stdcall__)) TlsFree(DWORD);
LPVOID __attribute__((__stdcall__)) TlsGetValue(DWORD);
WIN_BOOL __attribute__((__stdcall__)) TlsSetValue(DWORD,LPVOID);
VOID __attribute__((__stdcall__)) UnMapLS(SEGPTR);
WIN_BOOL __attribute__((__stdcall__)) UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) UnmapViewOfFile(LPVOID);
LPVOID __attribute__((__stdcall__)) VirtualAlloc(LPVOID,DWORD,DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) VirtualFree(LPVOID,DWORD,DWORD);
WIN_BOOL __attribute__((__stdcall__)) VirtualLock(LPVOID,DWORD);
WIN_BOOL __attribute__((__stdcall__)) VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) VirtualProtectEx(HANDLE,LPVOID,DWORD,DWORD,LPDWORD);
DWORD __attribute__((__stdcall__)) VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
DWORD __attribute__((__stdcall__)) VirtualQueryEx(HANDLE,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
WIN_BOOL __attribute__((__stdcall__)) VirtualUnlock(LPVOID,DWORD);
WIN_BOOL __attribute__((__stdcall__)) WaitCommEvent(HANDLE,LPDWORD,LPOVERLAPPED);
WIN_BOOL __attribute__((__stdcall__)) WaitForDebugEvent(LPDEBUG_EVENT,DWORD);
DWORD __attribute__((__stdcall__)) WaitForMultipleObjects(DWORD,const HANDLE*,WIN_BOOL,DWORD);
DWORD __attribute__((__stdcall__)) WaitForMultipleObjectsEx(DWORD,const HANDLE*,WIN_BOOL,DWORD,WIN_BOOL);
DWORD __attribute__((__stdcall__)) WaitForSingleObject(HANDLE,DWORD);
DWORD __attribute__((__stdcall__)) WaitForSingleObjectEx(HANDLE,DWORD,WIN_BOOL);
WIN_BOOL __attribute__((__stdcall__)) WriteConsoleA(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID);
WIN_BOOL __attribute__((__stdcall__)) WriteConsoleW(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID);

WIN_BOOL __attribute__((__stdcall__)) WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
LANGID __attribute__((__stdcall__)) GetSystemDefaultLangID(void);
LCID __attribute__((__stdcall__)) GetSystemDefaultLCID(void);
LANGID __attribute__((__stdcall__)) GetUserDefaultLangID(void);
LCID __attribute__((__stdcall__)) GetUserDefaultLCID(void);
ATOM __attribute__((__stdcall__)) AddAtomA(LPCSTR);
ATOM __attribute__((__stdcall__)) AddAtomW(LPCWSTR);

UINT __attribute__((__stdcall__)) CompareStringA(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
UINT __attribute__((__stdcall__)) CompareStringW(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD);

WIN_BOOL __attribute__((__stdcall__)) CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);
WIN_BOOL __attribute__((__stdcall__)) CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES);

WIN_BOOL __attribute__((__stdcall__)) CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
WIN_BOOL __attribute__((__stdcall__)) CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);

WIN_BOOL __attribute__((__stdcall__)) DefineDosDeviceA(DWORD,LPCSTR,LPCSTR);

ATOM __attribute__((__stdcall__)) DeleteAtom(ATOM);
WIN_BOOL __attribute__((__stdcall__)) DeleteFileA(LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) DeleteFileW(LPCWSTR);

void __attribute__((__stdcall__)) FatalAppExitA(UINT,LPCSTR);
void __attribute__((__stdcall__)) FatalAppExitW(UINT,LPCWSTR);

ATOM __attribute__((__stdcall__)) FindAtomA(LPCSTR);
ATOM __attribute__((__stdcall__)) FindAtomW(LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) FindClose(HANDLE);
HANDLE16 __attribute__((__stdcall__)) FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA);
HANDLE __attribute__((__stdcall__)) FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA);
HANDLE __attribute__((__stdcall__)) FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW);

WIN_BOOL16 __attribute__((__stdcall__)) FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA);
WIN_BOOL __attribute__((__stdcall__)) FindNextFileA(HANDLE,LPWIN32_FIND_DATAA);
WIN_BOOL __attribute__((__stdcall__)) FindNextFileW(HANDLE,LPWIN32_FIND_DATAW);

HRSRC __attribute__((__stdcall__)) FindResourceA(HMODULE,LPCSTR,LPCSTR);
HRSRC __attribute__((__stdcall__)) FindResourceW(HMODULE,LPCWSTR,LPCWSTR);

VOID __attribute__((__stdcall__)) FreeLibrary16(HINSTANCE16);
WIN_BOOL __attribute__((__stdcall__)) FreeLibrary(HMODULE);


WIN_BOOL __attribute__((__stdcall__)) FreeResource(HGLOBAL);
UINT __attribute__((__stdcall__)) GetAtomNameA(ATOM,LPSTR,INT);
UINT __attribute__((__stdcall__)) GetAtomNameW(ATOM,LPWSTR,INT);

UINT __attribute__((__stdcall__)) GetCurrentDirectoryA(UINT,LPSTR);
UINT __attribute__((__stdcall__)) GetCurrentDirectoryW(UINT,LPWSTR);

WIN_BOOL __attribute__((__stdcall__)) GetDiskFreeSpaceA(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetDiskFreeSpaceW(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);

WIN_BOOL __attribute__((__stdcall__)) GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
WIN_BOOL __attribute__((__stdcall__)) GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);

UINT __attribute__((__stdcall__)) GetDriveTypeA(LPCSTR);
UINT __attribute__((__stdcall__)) GetDriveTypeW(LPCWSTR);

DWORD __attribute__((__stdcall__)) GetFileAttributesA(LPCSTR);
DWORD __attribute__((__stdcall__)) GetFileAttributesW(LPCWSTR);


UINT __attribute__((__stdcall__)) GetLogicalDriveStringsA(UINT,LPSTR);
UINT __attribute__((__stdcall__)) GetLogicalDriveStringsW(UINT,LPWSTR);

INT __attribute__((__stdcall__)) GetLocaleInfoA(LCID,LCTYPE,LPSTR,INT);
INT __attribute__((__stdcall__)) GetLocaleInfoW(LCID,LCTYPE,LPWSTR,INT);

DWORD __attribute__((__stdcall__)) GetModuleFileNameA(HMODULE,LPSTR,DWORD);
DWORD __attribute__((__stdcall__)) GetModuleFileNameW(HMODULE,LPWSTR,DWORD);

HMODULE __attribute__((__stdcall__)) GetModuleHandleA(LPCSTR);
HMODULE __attribute__((__stdcall__)) GetModuleHandleW(LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) GetOverlappedResult(HANDLE,LPOVERLAPPED,LPDWORD,WIN_BOOL);
UINT __attribute__((__stdcall__)) GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR);
UINT __attribute__((__stdcall__)) GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR);

INT __attribute__((__stdcall__)) GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR);
INT __attribute__((__stdcall__)) GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR);

DWORD __attribute__((__stdcall__)) GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR);
DWORD __attribute__((__stdcall__)) GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR);

INT __attribute__((__stdcall__)) GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT,LPCSTR);
INT __attribute__((__stdcall__)) GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) GetPrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) GetPrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);

FARPROC __attribute__((__stdcall__)) GetProcAddress(HMODULE,LPCSTR);
UINT __attribute__((__stdcall__)) GetProfileIntA(LPCSTR,LPCSTR,INT);
UINT __attribute__((__stdcall__)) GetProfileIntW(LPCWSTR,LPCWSTR,INT);

INT __attribute__((__stdcall__)) GetProfileSectionA(LPCSTR,LPSTR,DWORD);
INT __attribute__((__stdcall__)) GetProfileSectionW(LPCWSTR,LPWSTR,DWORD);

INT __attribute__((__stdcall__)) GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT);
INT __attribute__((__stdcall__)) GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT);

VOID __attribute__((__stdcall__)) GetStartupInfoA(LPSTARTUPINFOA);
VOID __attribute__((__stdcall__)) GetStartupInfoW(LPSTARTUPINFOW);

WIN_BOOL __attribute__((__stdcall__)) GetStringTypeA(LCID,DWORD,LPCSTR,INT,LPWORD);
WIN_BOOL __attribute__((__stdcall__)) GetStringTypeW(DWORD,LPCWSTR,INT,LPWORD);

UINT __attribute__((__stdcall__)) GetSystemDirectoryA(LPSTR,UINT);
UINT __attribute__((__stdcall__)) GetSystemDirectoryW(LPWSTR,UINT);

UINT __attribute__((__stdcall__)) GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR);
UINT __attribute__((__stdcall__)) GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR);

UINT __attribute__((__stdcall__)) GetTempPathA(UINT,LPSTR);
UINT __attribute__((__stdcall__)) GetTempPathW(UINT,LPWSTR);

LONG __attribute__((__stdcall__)) GetVersion(void);
WIN_BOOL __attribute__((__stdcall__)) GetExitCodeProcess(HANDLE,LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) GetVolumeInformationA(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
WIN_BOOL __attribute__((__stdcall__)) GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);

UINT __attribute__((__stdcall__)) GetWindowsDirectoryA(LPSTR,UINT);
UINT __attribute__((__stdcall__)) GetWindowsDirectoryW(LPWSTR,UINT);

HGLOBAL16 __attribute__((__stdcall__)) GlobalAlloc16(UINT16,DWORD);
HGLOBAL __attribute__((__stdcall__)) GlobalAlloc(UINT,DWORD);
DWORD __attribute__((__stdcall__)) GlobalCompact(DWORD);
UINT __attribute__((__stdcall__)) GlobalFlags(HGLOBAL);
HGLOBAL16 __attribute__((__stdcall__)) GlobalFree16(HGLOBAL16);
HGLOBAL __attribute__((__stdcall__)) GlobalFree(HGLOBAL);
HGLOBAL __attribute__((__stdcall__)) GlobalHandle(LPCVOID);
WORD __attribute__((__stdcall__)) GlobalFix16(HGLOBAL16);
VOID __attribute__((__stdcall__)) GlobalFix(HGLOBAL);
LPVOID __attribute__((__stdcall__)) GlobalLock16(HGLOBAL16);
LPVOID __attribute__((__stdcall__)) GlobalLock(HGLOBAL);
HGLOBAL __attribute__((__stdcall__)) GlobalReAlloc(HGLOBAL,DWORD,UINT);
DWORD __attribute__((__stdcall__)) GlobalSize16(HGLOBAL16);
DWORD __attribute__((__stdcall__)) GlobalSize(HGLOBAL);
VOID __attribute__((__stdcall__)) GlobalUnfix16(HGLOBAL16);
VOID __attribute__((__stdcall__)) GlobalUnfix(HGLOBAL);
WIN_BOOL16 __attribute__((__stdcall__)) GlobalUnlock16(HGLOBAL16);
WIN_BOOL __attribute__((__stdcall__)) GlobalUnlock(HGLOBAL);
WIN_BOOL16 __attribute__((__stdcall__)) GlobalUnWire16(HGLOBAL16);
WIN_BOOL __attribute__((__stdcall__)) GlobalUnWire(HGLOBAL);
SEGPTR __attribute__((__stdcall__)) GlobalWire16(HGLOBAL16);
LPVOID __attribute__((__stdcall__)) GlobalWire(HGLOBAL);
WIN_BOOL __attribute__((__stdcall__)) InitAtomTable(DWORD);
WIN_BOOL __attribute__((__stdcall__)) IsBadCodePtr(FARPROC);
WIN_BOOL __attribute__((__stdcall__)) IsBadHugeReadPtr(LPCVOID,UINT);
WIN_BOOL __attribute__((__stdcall__)) IsBadHugeWritePtr(LPVOID,UINT);
WIN_BOOL __attribute__((__stdcall__)) IsBadReadPtr(LPCVOID,UINT);
WIN_BOOL __attribute__((__stdcall__)) IsBadStringPtrA(LPCSTR,UINT);
WIN_BOOL __attribute__((__stdcall__)) IsBadStringPtrW(LPCWSTR,UINT);

WIN_BOOL __attribute__((__stdcall__)) IsBadWritePtr(LPVOID,UINT);
WIN_BOOL __attribute__((__stdcall__)) IsDBCSLeadByte(BYTE);
WIN_BOOL __attribute__((__stdcall__)) IsDebuggerPresent(void);
HINSTANCE16 __attribute__((__stdcall__)) LoadLibrary16(LPCSTR);
HMODULE __attribute__((__stdcall__)) LoadLibraryA(LPCSTR);
HMODULE __attribute__((__stdcall__)) LoadLibraryW(LPCWSTR);

HMODULE __attribute__((__stdcall__)) LoadLibraryExA(LPCSTR,HANDLE,DWORD);
HMODULE __attribute__((__stdcall__)) LoadLibraryExW(LPCWSTR,HANDLE,DWORD);

HINSTANCE16 __attribute__((__stdcall__)) LoadModule16(LPCSTR,LPVOID);
HINSTANCE __attribute__((__stdcall__)) LoadModule(LPCSTR,LPVOID);
HGLOBAL __attribute__((__stdcall__)) LoadResource(HMODULE,HRSRC);
HLOCAL __attribute__((__stdcall__)) LocalAlloc(UINT,DWORD);
UINT __attribute__((__stdcall__)) LocalCompact(UINT);
UINT __attribute__((__stdcall__)) LocalFlags(HLOCAL);
HLOCAL __attribute__((__stdcall__)) LocalFree(HLOCAL);
HLOCAL __attribute__((__stdcall__)) LocalHandle(LPCVOID);
LPVOID __attribute__((__stdcall__)) LocalLock(HLOCAL);
HLOCAL __attribute__((__stdcall__)) LocalReAlloc(HLOCAL,DWORD,UINT);
UINT __attribute__((__stdcall__)) LocalShrink(HGLOBAL,UINT);
UINT __attribute__((__stdcall__)) LocalSize(HLOCAL);
WIN_BOOL __attribute__((__stdcall__)) LocalUnlock(HLOCAL);
LPVOID __attribute__((__stdcall__)) LockResource(HGLOBAL);


HFILE16 __attribute__((__stdcall__)) OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
HFILE __attribute__((__stdcall__)) OpenFile(LPCSTR,OFSTRUCT*,UINT);
VOID __attribute__((__stdcall__)) OutputDebugStringA(LPCSTR);
VOID __attribute__((__stdcall__)) OutputDebugStringW(LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) ReadProcessMemory(HANDLE, LPCVOID, LPVOID, DWORD, LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) RemoveDirectoryA(LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) RemoveDirectoryW(LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) SetCurrentDirectoryA(LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) SetCurrentDirectoryW(LPCWSTR);

UINT __attribute__((__stdcall__)) SetErrorMode(UINT);
WIN_BOOL __attribute__((__stdcall__)) SetFileAttributesA(LPCSTR,DWORD);
WIN_BOOL __attribute__((__stdcall__)) SetFileAttributesW(LPCWSTR,DWORD);

UINT __attribute__((__stdcall__)) SetHandleCount(UINT);

WIN_BOOL __attribute__((__stdcall__)) SetVolumeLabelA(LPCSTR,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) SetVolumeLabelW(LPCWSTR,LPCWSTR);

DWORD __attribute__((__stdcall__)) SizeofResource(HMODULE,HRSRC);

WIN_BOOL __attribute__((__stdcall__)) WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) WriteProfileSectionA(LPCSTR,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) WriteProfileSectionW(LPCWSTR,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) WritePrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) WritePrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR);

WIN_BOOL __attribute__((__stdcall__)) WriteProcessMemory(HANDLE, LPVOID, LPVOID, DWORD, LPDWORD);
WIN_BOOL __attribute__((__stdcall__)) WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR);
WIN_BOOL __attribute__((__stdcall__)) WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR);


LPSTR __attribute__((__stdcall__)) lstrcatA(LPSTR,LPCSTR);
LPWSTR __attribute__((__stdcall__)) lstrcatW(LPWSTR,LPCWSTR);

LPSTR __attribute__((__stdcall__)) lstrcpyA(LPSTR,LPCSTR);
LPWSTR __attribute__((__stdcall__)) lstrcpyW(LPWSTR,LPCWSTR);

LPSTR __attribute__((__stdcall__)) lstrcpynA(LPSTR,LPCSTR,INT);
LPWSTR __attribute__((__stdcall__)) lstrcpynW(LPWSTR,LPCWSTR,INT);

INT __attribute__((__stdcall__)) lstrlenA(LPCSTR);
INT __attribute__((__stdcall__)) lstrlenW(LPCWSTR);

HINSTANCE __attribute__((__stdcall__)) WinExec(LPCSTR,UINT);
LONG __attribute__((__stdcall__)) _hread(HFILE,LPVOID,LONG);
LONG __attribute__((__stdcall__)) _hwrite(HFILE,LPCSTR,LONG);
HFILE __attribute__((__stdcall__)) _lcreat(LPCSTR,INT);
HFILE __attribute__((__stdcall__)) _lclose(HFILE);
LONG __attribute__((__stdcall__)) _llseek(HFILE,LONG,INT);
HFILE __attribute__((__stdcall__)) _lopen(LPCSTR,INT);
UINT __attribute__((__stdcall__)) _lread(HFILE,LPVOID,UINT);
UINT __attribute__((__stdcall__)) _lwrite(HFILE,LPCSTR,UINT);
SEGPTR __attribute__((__stdcall__)) WIN16_GlobalLock16(HGLOBAL16);
INT __attribute__((__stdcall__)) lstrcmpA(LPCSTR,LPCSTR);
INT __attribute__((__stdcall__)) lstrcmpW(LPCWSTR,LPCWSTR);

INT __attribute__((__stdcall__)) lstrcmpiA(LPCSTR,LPCSTR);
INT __attribute__((__stdcall__)) lstrcmpiW(LPCWSTR,LPCWSTR);
# 1771 "wine/winbase.h"
DWORD __attribute__((__stdcall__)) GetCurrentProcessId(void);
DWORD __attribute__((__stdcall__)) GetCurrentThreadId(void);
DWORD __attribute__((__stdcall__)) GetLastError(void);
HANDLE __attribute__((__stdcall__)) GetProcessHeap(void);
PVOID __attribute__((__stdcall__)) InterlockedCompareExchange(PVOID*,PVOID,PVOID);
LONG __attribute__((__stdcall__)) InterlockedDecrement(PLONG);
LONG __attribute__((__stdcall__)) InterlockedExchange(PLONG,LONG);
LONG __attribute__((__stdcall__)) InterlockedExchangeAdd(PLONG,LONG);
LONG __attribute__((__stdcall__)) InterlockedIncrement(PLONG);
VOID __attribute__((__stdcall__)) SetLastError(DWORD);
# 8 "win32.h" 2
# 1 "com.h" 1



# 1 "/usr/include/inttypes.h" 1 3
# 26 "/usr/include/inttypes.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/inttypes.h" 2 3

# 1 "/usr/include/stdint.h" 1 3
# 26 "/usr/include/stdint.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/stdint.h" 2 3

# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 287 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 3
typedef long int wchar_t;
# 29 "/usr/include/stdint.h" 2 3
# 1 "/usr/include/bits/wchar.h" 1 3
# 30 "/usr/include/stdint.h" 2 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 31 "/usr/include/stdint.h" 2 3
# 39 "/usr/include/stdint.h" 3
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;



__extension__
typedef long long int int64_t;




typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;

typedef unsigned int uint32_t;





__extension__
typedef unsigned long long int uint64_t;






typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;



__extension__
typedef long long int int_least64_t;



typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;



__extension__
typedef unsigned long long int uint_least64_t;






typedef signed char int_fast8_t;





typedef int int_fast16_t;
typedef int int_fast32_t;
__extension__
typedef long long int int_fast64_t;



typedef unsigned char uint_fast8_t;





typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
__extension__
typedef unsigned long long int uint_fast64_t;
# 128 "/usr/include/stdint.h" 3
typedef int intptr_t;


typedef unsigned int uintptr_t;
# 140 "/usr/include/stdint.h" 3
__extension__
typedef long long int intmax_t;
__extension__
typedef unsigned long long int uintmax_t;
# 29 "/usr/include/inttypes.h" 2 3
# 274 "/usr/include/inttypes.h" 3
typedef struct
  {
    long long int quot;
    long long int rem;
  } imaxdiv_t;





extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__const__));


extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
              __attribute__ ((__const__));


extern intmax_t strtoimax (__const char *__restrict __nptr,
                           char **__restrict __endptr, int __base) ;


extern uintmax_t strtoumax (__const char * __restrict __nptr,
                            char ** __restrict __endptr, int __base) ;


extern intmax_t wcstoimax (__const wchar_t * __restrict __nptr,
                           wchar_t **__restrict __endptr, int __base) ;


extern uintmax_t wcstoumax (__const wchar_t * __restrict __nptr,
                            wchar_t ** __restrict __endptr, int __base) ;
# 374 "/usr/include/inttypes.h" 3
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
                                         char **__restrict __endptr,
                                         int __base, int __group) ;


extern __inline intmax_t
strtoimax (__const char *__restrict nptr, char **__restrict endptr,
           int base)
{
  return __strtoll_internal (nptr, endptr, base, 0);
}



__extension__
extern unsigned long long int __strtoull_internal (__const char *
                                                   __restrict __nptr,
                                                   char **
                                                   __restrict __endptr,
                                                   int __base,
                                                   int __group) ;


extern __inline uintmax_t
strtoumax (__const char *__restrict nptr, char **__restrict endptr,
           int base)
{
  return __strtoull_internal (nptr, endptr, base, 0);
}



__extension__
extern long long int __wcstoll_internal (__const wchar_t *
                                         __restrict __nptr,
                                         wchar_t **__restrict __endptr,
                                         int __base, int __group) ;


extern __inline intmax_t
wcstoimax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
           int base)
{
  return __wcstoll_internal (nptr, endptr, base, 0);
}




__extension__
extern unsigned long long int __wcstoull_internal (__const wchar_t *
                                                   __restrict __nptr,
                                                   wchar_t **
                                                   __restrict __endptr,
                                                   int __base,
                                                   int __group) ;


extern __inline uintmax_t
wcstoumax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
           int base)
{
  return __wcstoull_internal (nptr, endptr, base, 0);
}
# 5 "com.h" 2
# 16 "com.h"
void* CoTaskMemAlloc(unsigned long cb);
void CoTaskMemFree(void* cb);



typedef struct
{
    uint32_t f1;
    uint16_t f2;
    uint16_t f3;
    uint8_t f4[8];
} GUID;


extern GUID IID_IUnknown;
extern GUID IID_IClassFactory;

typedef long (*GETCLASSOBJECT) (GUID* clsid, GUID* iid, void** ppv);
int RegisterComClass(GUID* clsid, GETCLASSOBJECT gcs);
int UnregisterComClass(GUID* clsid, GETCLASSOBJECT gcs);





struct IUnknown;
struct IClassFactory;
struct IUnknown_vt
{
    long __attribute__((__stdcall__)) (*QueryInterface)(struct IUnknown* _this, GUID* iid, void** ppv);
    long __attribute__((__stdcall__)) (*AddRef)(struct IUnknown* _this) ;
    long __attribute__((__stdcall__)) (*Release)(struct IUnknown* _this) ;
} ;
struct IUnknown
{
    struct IUnknown_vt* vt;
};

struct IClassFactory_vt
{
    long __attribute__((__stdcall__)) (*QueryInterface)(struct IUnknown* _this, GUID* iid, void** ppv);
    long __attribute__((__stdcall__)) (*AddRef)(struct IUnknown* _this) ;
    long __attribute__((__stdcall__)) (*Release)(struct IUnknown* _this) ;
    long __attribute__((__stdcall__)) (*CreateInstance)(struct IClassFactory* _this, struct IUnknown* pUnkOuter, GUID* riid, void** ppvObject);
};

struct IClassFactory
{
    struct IClassFactory_vt* vt;
};

long CoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
                      long dwClsContext, GUID* riid, void** ppv);
# 9 "win32.h" 2

extern void* my_mreq(int size, int to_zero);
extern int my_release(void* memory);
extern int my_size(char* memory);
extern int my_garbagecollection(void);


typedef struct {
    UINT uDriverSignature;
    HINSTANCE hDriverModule;
    DRIVERPROC DriverProc;
    DWORD dwDriverID;
} DRVR;

typedef DRVR *PDRVR;
typedef DRVR *NPDRVR;
typedef DRVR *LPDRVR;

typedef struct tls_s tls_t;

extern int __attribute__((__stdcall__)) ext_unknown(void);

extern int __attribute__((__stdcall__)) expIsBadWritePtr(void* ptr, unsigned int count);
extern int __attribute__((__stdcall__)) expIsBadReadPtr(void* ptr, unsigned int count);
extern int __attribute__((__stdcall__)) expDisableThreadLibraryCalls(int module);
extern void* __attribute__((__stdcall__)) expGetDriverModuleHandle(DRVR* pdrv);
extern void* __attribute__((__stdcall__)) expGetModuleHandleA(const char* name);
extern void* __attribute__((__stdcall__)) expCreateThread(void* pSecAttr, long dwStackSize, void* lpStartAddress,
                                    void* lpParameter, long dwFlags, long* dwThreadId);
extern void* __attribute__((__stdcall__)) expCreateEventA(void* pSecAttr, char bManualReset,
                                    char bInitialState, const char* name);
extern void* __attribute__((__stdcall__)) expSetEvent(void* event);
extern void* __attribute__((__stdcall__)) expResetEvent(void* event);
extern void* __attribute__((__stdcall__)) expWaitForSingleObject(void* object, int duration);
extern WIN_BOOL __attribute__((__stdcall__)) expIsProcessorFeaturePresent(DWORD v);
extern void __attribute__((__stdcall__)) expGetSystemInfo(SYSTEM_INFO* si);
extern long __attribute__((__stdcall__)) expGetVersion(void);
long __attribute__((__stdcall__)) expGetVersionExA(OSVERSIONINFOA* c);
extern HANDLE __attribute__((__stdcall__)) expHeapCreate(long flags, long init_size, long max_size);
extern void* __attribute__((__stdcall__)) expHeapAlloc(HANDLE heap, int flags, int size);
extern long __attribute__((__stdcall__)) expHeapDestroy(void* heap);
extern long __attribute__((__stdcall__)) expHeapFree(int arg1, int arg2, void* ptr);
extern long __attribute__((__stdcall__)) expHeapSize(int heap, int flags, void* pointer);
extern long __attribute__((__stdcall__)) expGetProcessHeap(void);
extern void* __attribute__((__stdcall__)) expVirtualAlloc(void* v1, long v2, long v3, long v4);
extern int __attribute__((__stdcall__)) expVirtualFree(void* v1, int v2, int v3);
extern void __attribute__((__stdcall__)) expInitializeCriticalSection(CRITICAL_SECTION* c);
extern void __attribute__((__stdcall__)) expEnterCriticalSection(CRITICAL_SECTION* c);
extern void __attribute__((__stdcall__)) expLeaveCriticalSection(CRITICAL_SECTION* c);
extern void __attribute__((__stdcall__)) expDeleteCriticalSection(CRITICAL_SECTION *c);
extern int __attribute__((__stdcall__)) expGetCurrentThreadId(void);
extern int __attribute__((__stdcall__)) expGetCurrentProcess(void);
extern void* __attribute__((__stdcall__)) expTlsAlloc(void);
extern int __attribute__((__stdcall__)) expTlsSetValue(tls_t* index, void* value);
extern void* __attribute__((__stdcall__)) expTlsGetValue(tls_t* index);
extern int __attribute__((__stdcall__)) expTlsFree(tls_t* index);
extern void* __attribute__((__stdcall__)) expLocalAlloc(int flags, int size);
extern void* __attribute__((__stdcall__)) expLocalLock(void* z);
extern void* __attribute__((__stdcall__)) expGlobalAlloc(int flags, int size);
extern void* __attribute__((__stdcall__)) expGlobalLock(void* z);
extern int __attribute__((__stdcall__)) expLoadStringA(long instance, long id, void* buf, long size);
extern long __attribute__((__stdcall__)) expMultiByteToWideChar(long v1, long v2, char* s1, long siz1, short* s2, int siz2);
extern long __attribute__((__stdcall__)) expWideCharToMultiByte(long v1, long v2, short* s1, long siz1, char* s2, int siz2, char* c3, int* siz3);
extern long __attribute__((__stdcall__)) expGetVersionExA(OSVERSIONINFOA* c);
extern HANDLE __attribute__((__stdcall__)) expCreateSemaphoreA(char* v1, long init_count, long max_count, char* name);
extern long __attribute__((__stdcall__)) expReleaseSemaphore(long hsem, long increment, long* prev_count);
extern long __attribute__((__stdcall__)) expRegOpenKeyExA(long key, const char* subkey, long reserved, long access, int* newkey);
extern long __attribute__((__stdcall__)) expRegCloseKey(long key);

extern long __attribute__((__stdcall__)) expRegQueryValueExA(long key, const char* value, int* reserved, int* type, int* data, int* count);
extern long __attribute__((__stdcall__)) expRegCreateKeyExA(long key, const char* name, long reserved,
                                      void* classs, long options, long security,
                                      void* sec_attr, int* newkey, int* status);
extern long __attribute__((__stdcall__)) expRegSetValueExA(long key, const char* name, long v1, long v2, void* data, long size);
extern long __attribute__((__stdcall__)) expRegOpenKeyA (long hKey, LPCSTR lpSubKey, int* phkResult);
extern long __attribute__((__stdcall__)) expQueryPerformanceCounter(long long* z);
extern long __attribute__((__stdcall__)) expQueryPerformanceFrequency(long long* z);
extern long __attribute__((__stdcall__)) exptimeGetTime(void);
extern void* __attribute__((__stdcall__)) expLocalHandle(void* v);
extern void* __attribute__((__stdcall__)) expGlobalHandle(void* v);
extern int __attribute__((__stdcall__)) expGlobalUnlock(void* v);
extern void* __attribute__((__stdcall__)) expGlobalFree(void* v);
extern void* __attribute__((__stdcall__)) expGlobalReAlloc(void* v, int size, int flags);
extern int __attribute__((__stdcall__)) expLocalUnlock(void* v);
extern void* __attribute__((__stdcall__)) expLocalFree(void* v);
extern HRSRC __attribute__((__stdcall__)) expFindResourceA(HMODULE module, char* name, char* type);
extern HGLOBAL __attribute__((__stdcall__)) expLoadResource(HMODULE module, HRSRC res);
extern void* __attribute__((__stdcall__)) expLockResource(long res);
extern int __attribute__((__stdcall__)) expFreeResource(long res);
extern int __attribute__((__stdcall__)) expCloseHandle(long v1);
extern const char* __attribute__((__stdcall__)) expGetCommandLineA(void);
extern LPWSTR __attribute__((__stdcall__)) expGetEnvironmentStringsW(void);
extern void * __attribute__((__stdcall__)) expRtlZeroMemory(void *p, size_t len);
extern void * __attribute__((__stdcall__)) expRtlMoveMemory(void *dst, void *src, size_t len);
extern void * __attribute__((__stdcall__)) expRtlFillMemory(void *p, int ch, size_t len);
extern int __attribute__((__stdcall__)) expFreeEnvironmentStringsW(short* strings);
extern int __attribute__((__stdcall__)) expFreeEnvironmentStringsA(char* strings);
extern LPWSTR __attribute__((__stdcall__)) expGetEnvironmentStringsW(void);
LPCSTR __attribute__((__stdcall__)) expGetEnvironmentStrings(void);
extern int __attribute__((__stdcall__)) expGetStartupInfoA(STARTUPINFOA *s);
extern int __attribute__((__stdcall__)) expGetStdHandle(int z);
extern int __attribute__((__stdcall__)) expGetFileType(int handle);
extern int __attribute__((__stdcall__)) expSetHandleCount(int count);
extern int __attribute__((__stdcall__)) expGetACP(void);
extern int __attribute__((__stdcall__)) expGetModuleFileNameA(int module, char* s, int len);
extern int __attribute__((__stdcall__)) expSetUnhandledExceptionFilter(void* filter);
extern int __attribute__((__stdcall__)) expLoadLibraryA(char* name);
extern int __attribute__((__stdcall__)) expFreeLibrary(int module);
extern void* __attribute__((__stdcall__)) expGetProcAddress(HMODULE mod, char* name);
extern long __attribute__((__stdcall__)) expCreateFileMappingA(int hFile, void* lpAttr,
                                         long flProtect, long dwMaxHigh, long dwMaxLow, const char* name);
extern long __attribute__((__stdcall__)) expOpenFileMappingA(long hFile, long hz, const char* name);
extern void* __attribute__((__stdcall__)) expMapViewOfFile(HANDLE file, DWORD mode, DWORD offHigh, DWORD offLow, DWORD size);
extern void* __attribute__((__stdcall__)) expUnmapViewOfFile(void* view);
extern void* __attribute__((__stdcall__)) expSleep(int time);
extern void* __attribute__((__stdcall__)) expCreateCompatibleDC(int hdc);
extern int __attribute__((__stdcall__)) expGetDeviceCaps(int hdc, int unk);
extern WIN_BOOL __attribute__((__stdcall__)) expDeleteDC(int hdc);
extern int __attribute__((__stdcall__)) expGetPrivateProfileIntA(const char* appname, const char* keyname, int default_value, const char* filename);
extern int __attribute__((__stdcall__)) expGetProfileIntA(const char* appname, const char* keyname, int default_value);
extern int __attribute__((__stdcall__)) expGetPrivateProfileStringA(const char* appname, const char* keyname,
                                              const char* def_val, char* dest, unsigned int len, const char* filename);
extern int __attribute__((__stdcall__)) expWritePrivateProfileStringA(const char* appname, const char* keyname,
                                                const char* string, const char* filename);
extern int __attribute__((__stdcall__)) expDefDriverProc(int _private, int id, int msg, int arg1, int arg2);
extern int __attribute__((__stdcall__)) expSizeofResource(int v1, int v2);
extern int __attribute__((__stdcall__)) expGetLastError(void);
extern void __attribute__((__stdcall__)) expSetLastError(int error);
extern long __attribute__((__stdcall__)) exptimeGetTime(void);
extern int __attribute__((__stdcall__)) expStringFromGUID2(GUID* guid, char* str, int cbMax);
extern int __attribute__((__stdcall__)) expGetFileVersionInfoSizeA(const char* name, int* lpHandle);
extern int __attribute__((__stdcall__)) expIsBadStringPtrW(const short* string, int nchars);
extern int __attribute__((__stdcall__)) expIsBadStringPtrA(const char* string, int nchars);
extern long __attribute__((__stdcall__)) expInterlockedIncrement( long* dest );
extern long __attribute__((__stdcall__)) expInterlockedDecrement( long* dest );
extern void __attribute__((__stdcall__)) expOutputDebugStringA( const char* string );
extern int __attribute__((__stdcall__)) expGetDC(int hwnd);
extern int __attribute__((__stdcall__)) expGetDesktopWindow(void);
extern int __attribute__((__stdcall__)) expReleaseDC(int hwnd, int hdc);
extern int __attribute__((__stdcall__)) expLoadCursorA(int handle,LPCSTR name);
extern int __attribute__((__stdcall__)) expSetCursor(void *cursor);
extern int __attribute__((__stdcall__)) expGetSystemPaletteEntries(int hdc, int iStartIndex, int nEntries, void* lppe);
extern int __attribute__((__stdcall__)) expGetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation);
extern void __attribute__((__stdcall__)) expGetLocalTime(SYSTEMTIME* systime);
extern int __attribute__((__stdcall__)) expGetSystemTime(SYSTEMTIME* systime);
extern int __attribute__((__stdcall__)) expGetEnvironmentVariableA(const char* name, char* field, int size);
extern void* __attribute__((__stdcall__)) expCoTaskMemAlloc(ULONG cb);
extern void __attribute__((__stdcall__)) expCoTaskMemFree(void* cb);
extern long __attribute__((__stdcall__)) expCoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
                                       long dwClsContext, GUID* riid, void** ppv);
extern int __attribute__((__stdcall__)) expIsRectEmpty(const RECT *lprc);
extern unsigned int __attribute__((__stdcall__)) expGetTempPathA(unsigned int len, char* path);
extern HANDLE __attribute__((__stdcall__)) expFindFirstFileA(LPCSTR s, LPWIN32_FIND_DATAA lpfd);
extern WIN_BOOL __attribute__((__stdcall__)) expFindNextFileA(HANDLE h,LPWIN32_FIND_DATAA p);
extern WIN_BOOL __attribute__((__stdcall__)) expFindClose(HANDLE h);
extern UINT __attribute__((__stdcall__)) expSetErrorMode(UINT i);
extern UINT __attribute__((__stdcall__)) expGetWindowsDirectoryA(LPSTR s,UINT c);
extern WIN_BOOL __attribute__((__stdcall__)) expDeleteFileA(LPCSTR s);
extern WIN_BOOL __attribute__((__stdcall__)) expFileTimeToLocalFileTime(const FILETIME* cpf, LPFILETIME pf);
extern UINT __attribute__((__stdcall__)) expGetTempFileNameA(LPCSTR cs1,LPCSTR cs2,UINT i,LPSTR ps);
extern HANDLE __attribute__((__stdcall__)) expCreateFileA(LPCSTR cs1,DWORD i1,DWORD i2,
                                    LPSECURITY_ATTRIBUTES p1, DWORD i3,DWORD i4,HANDLE i5);
extern LPCSTR __attribute__((__stdcall__)) expGetSystemDirectoryA(void);
extern WIN_BOOL __attribute__((__stdcall__)) expReadFile(HANDLE h,LPVOID pv,DWORD size,LPDWORD rd,LPOVERLAPPED unused);
extern WIN_BOOL __attribute__((__stdcall__)) expWriteFile(HANDLE h,LPCVOID pv,DWORD size,LPDWORD wr,LPOVERLAPPED unused);
extern DWORD __attribute__((__stdcall__)) expSetFilePointer(HANDLE h, LONG val, LPLONG ext, DWORD whence);
extern HDRVR __attribute__((__stdcall__)) expOpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName,
                                   LPARAM lParam2);
HDRVR __attribute__((__stdcall__)) expOpenDriver(LPCSTR szDriverName, LPCSTR szSectionName,
                           LPARAM lParam2) ;
extern WIN_BOOL __attribute__((__stdcall__)) expGetProcessAffinityMask(HANDLE hProcess,
                                                 LPDWORD lpProcessAffinityMask,
                                                 LPDWORD lpSystemAffinityMask);
extern DWORD __attribute__((__stdcall__)) expRegEnumValueA( HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count,
                                       LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count );
extern INT __attribute__((__stdcall__)) expMulDiv(int nNumber,int nNumerator,int nDenominator);
extern LONG __attribute__((__stdcall__)) explstrcmpiA(const char* str1, const char* str2);
extern LONG __attribute__((__stdcall__)) explstrlenA(const char* str1);
extern LONG __attribute__((__stdcall__)) explstrcpyA(char* str1, const char* str2);
extern LONG __attribute__((__stdcall__)) expInterlockedExchange(long *dest, long l);

extern void* __attribute__((__cdecl__)) expmalloc(int size);
extern void __attribute__((__cdecl__)) expfree(void* mem);
extern void* __attribute__((__cdecl__)) expnew(int size);
extern int __attribute__((__cdecl__)) expdelete(void* memory);
extern int __attribute__((__cdecl__)) exp_initterm(int v1, int v2);

extern int expwsprintfA(char* string, char* format, ...);
extern char* expstrrchr(char* string, int value);
extern char* expstrchr(char* string, int value);
extern int expstrlen(char* str);
extern int expstrcpy(char* str1, const char* str2);
extern int expstrcmp(const char* str1, const char* str2);
extern int expstrcat(char* str1, const char* str2);
extern int expisalnum(int c);
extern int expmemmove(void* dest, void* src, int n);
extern int expmemcmp(void* dest, void* src, int n);
extern void *expmemcpy(void* dest, void* src, int n) ;
extern time_t exptime(time_t* t);
extern void* LookupExternal(const char* library, int ordinal);
# 17 "win32.c" 2
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 1 3
# 37 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
# 1 "/usr/include/features.h" 1 3
# 38 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3





# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 44 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3

# 1 "/usr/include/bits/types.h" 1 3
# 46 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3
# 54 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
typedef struct _IO_FILE FILE;
# 64 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
typedef struct _IO_FILE __FILE;
# 74 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 32 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 9 "/usr/include/_G_config.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 10 "/usr/include/_G_config.h" 2 3




# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 312 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 24 "/usr/include/_G_config.h" 3
# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3

# 1 "/usr/include/bits/wchar.h" 1 3
# 51 "/usr/include/wchar.h" 2 3
# 67 "/usr/include/wchar.h" 3
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    char __wchb[4];
  } __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3

typedef struct
{
  __off_t __pos;
  __mbstate_t __state;
} _G_fpos_t;
typedef struct
{
  __off64_t __pos;
  __mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3
# 1 "/usr/include/gconv.h" 1 3
# 26 "/usr/include/gconv.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/gconv.h" 2 3

# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3

# 1 "/usr/include/bits/wchar.h" 1 3
# 51 "/usr/include/wchar.h" 2 3
# 29 "/usr/include/gconv.h" 2 3

# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 31 "/usr/include/gconv.h" 2 3





enum
{
  __GCONV_OK = 0,
  __GCONV_NOCONV,
  __GCONV_NODB,
  __GCONV_NOMEM,

  __GCONV_EMPTY_INPUT,
  __GCONV_FULL_OUTPUT,
  __GCONV_ILLEGAL_INPUT,
  __GCONV_INCOMPLETE_INPUT,

  __GCONV_ILLEGAL_DESCRIPTOR,
  __GCONV_INTERNAL_ERROR
};



enum
{
  __GCONV_IS_LAST = 0x0001,
  __GCONV_IGNORE_ERRORS = 0x0002
};



struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;



typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
                            __const unsigned char **, __const unsigned char *,
                            unsigned char **, size_t *, int, int);


typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);



typedef int (*__gconv_trans_fct) (struct __gconv_step *,
                                  struct __gconv_step_data *, void *,
                                  __const unsigned char *,
                                  __const unsigned char **,
                                  __const unsigned char *, unsigned char **,
                                  size_t *);


typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
                                          __const unsigned char *,
                                          unsigned char *, unsigned char *);


typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
                                        size_t *);


typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);

struct __gconv_trans_data
{

  __gconv_trans_fct __trans_fct;
  __gconv_trans_context_fct __trans_context_fct;
  __gconv_trans_end_fct __trans_end_fct;
  void *__data;
  struct __gconv_trans_data *__next;
};



struct __gconv_step
{
  struct __gconv_loaded_object *__shlib_handle;
  __const char *__modname;

  int __counter;

  char *__from_name;
  char *__to_name;

  __gconv_fct __fct;
  __gconv_init_fct __init_fct;
  __gconv_end_fct __end_fct;



  int __min_needed_from;
  int __max_needed_from;
  int __min_needed_to;
  int __max_needed_to;


  int __stateful;

  void *__data;
};



struct __gconv_step_data
{
  unsigned char *__outbuf;
  unsigned char *__outbufend;



  int __flags;



  int __invocation_counter;



  int __internal_use;

  __mbstate_t *__statep;
  __mbstate_t __state;



  struct __gconv_trans_data *__trans;
};



typedef struct __gconv_info
{
  size_t __nsteps;
  struct __gconv_step *__steps;
  __extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3
typedef union
{
  struct __gconv_info __cd;
  struct
  {
    struct __gconv_info __cd;
    struct __gconv_step_data __data;
  } __combined;
} _G_iconv_t;

typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 33 "/usr/include/libio.h" 2 3
# 53 "/usr/include/libio.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdarg.h" 1 3
# 43 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 54 "/usr/include/libio.h" 2 3
# 160 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 170 "/usr/include/libio.h" 3
typedef void _IO_lock_t;





struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;



  int _pos;
# 193 "/usr/include/libio.h" 3
};


enum __codecvt_result
{
  __codecvt_ok,
  __codecvt_partial,
  __codecvt_error,
  __codecvt_noconv
};
# 261 "/usr/include/libio.h" 3
struct _IO_FILE {
  int _flags;




  char* _IO_read_ptr;
  char* _IO_read_end;
  char* _IO_read_base;
  char* _IO_write_base;
  char* _IO_write_ptr;
  char* _IO_write_end;
  char* _IO_buf_base;
  char* _IO_buf_end;

  char *_IO_save_base;
  char *_IO_backup_base;
  char *_IO_save_end;

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;
  int _blksize;
  __off_t _old_offset;



  unsigned short _cur_column;
  signed char _vtable_offset;
  char _shortbuf[1];



  _IO_lock_t *_lock;
# 305 "/usr/include/libio.h" 3
  __off64_t _offset;





  void *__pad1;
  void *__pad2;

  int _mode;

  char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];

};


typedef struct _IO_FILE _IO_FILE;


struct _IO_FILE_plus;

extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 344 "/usr/include/libio.h" 3
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);







typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
                                 size_t __n);







typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);


typedef int __io_close_fn (void *__cookie);
# 396 "/usr/include/libio.h" 3
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern wint_t __wunderflow (_IO_FILE *) ;
extern wint_t __wuflow (_IO_FILE *) ;
extern wint_t __woverflow (_IO_FILE *, wint_t) ;
# 426 "/usr/include/libio.h" 3
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;

extern int _IO_peekc_locked (_IO_FILE *__fp) ;





extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 456 "/usr/include/libio.h" 3
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
                        __gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
                         __gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;

extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;

extern void _IO_free_backup_area (_IO_FILE *) ;
# 75 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3
# 89 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
typedef _G_fpos_t fpos_t;
# 138 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 139 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3



extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;






extern int remove (__const char *__filename) ;

extern int rename (__const char *__old, __const char *__new) ;




extern FILE *tmpfile (void) ;
# 170 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern char *tmpnam (char *__s) ;




extern char *tmpnam_r (char *__s) ;
# 187 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx)
             __attribute__ ((__malloc__));




extern int fclose (FILE *__stream) ;

extern int fflush (FILE *__stream) ;



extern int fflush_unlocked (FILE *__stream) ;
# 210 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern FILE *fopen (__const char *__restrict __filename,
                    __const char *__restrict __modes) ;

extern FILE *freopen (__const char *__restrict __filename,
                      __const char *__restrict __modes,
                      FILE *__restrict __stream) ;
# 240 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 263 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;



extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
                    int __modes, size_t __n) ;




extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
                       size_t __size) ;


extern void setlinebuf (FILE *__stream) ;




extern int fprintf (FILE *__restrict __stream,
                    __const char *__restrict __format, ...) ;

extern int printf (__const char *__restrict __format, ...) ;

extern int sprintf (char *__restrict __s,
                    __const char *__restrict __format, ...) ;


extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
                     __gnuc_va_list __arg) ;

extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
            ;

extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
                     __gnuc_va_list __arg) ;



extern int snprintf (char *__restrict __s, size_t __maxlen,
                     __const char *__restrict __format, ...)
             __attribute__ ((__format__ (__printf__, 3, 4)));

extern int vsnprintf (char *__restrict __s, size_t __maxlen,
                      __const char *__restrict __format, __gnuc_va_list __arg)
             __attribute__ ((__format__ (__printf__, 3, 0)));
# 334 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fscanf (FILE *__restrict __stream,
                   __const char *__restrict __format, ...) ;

extern int scanf (__const char *__restrict __format, ...) ;

extern int sscanf (__const char *__restrict __s,
                   __const char *__restrict __format, ...) ;
# 360 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;


extern int getchar (void) ;







extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;




extern int fgetc_unlocked (FILE *__stream) ;




extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;


extern int putchar (int __c) ;







extern int fputc_unlocked (int __c, FILE *__stream) ;




extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;





extern int getw (FILE *__stream) ;


extern int putw (int __w, FILE *__stream) ;




extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
            ;
# 426 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern char *gets (char *__s) ;
# 450 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
            ;
# 460 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int puts (__const char *__s) ;



extern int ungetc (int __c, FILE *__stream) ;



extern size_t fread (void *__restrict __ptr, size_t __size,
                     size_t __n, FILE *__restrict __stream) ;

extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
                      size_t __n, FILE *__restrict __s) ;



extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
                              size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
                               size_t __n, FILE *__restrict __stream) ;




extern int fseek (FILE *__stream, long int __off, int __whence) ;

extern long int ftell (FILE *__stream) ;

extern void rewind (FILE *__stream) ;
# 504 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
            ;

extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 540 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern void clearerr (FILE *__stream) ;

extern int feof (FILE *__stream) ;

extern int ferror (FILE *__stream) ;



extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;




extern void perror (__const char *__s) ;




extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 571 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern int fileno (FILE *__stream) ;




extern int fileno_unlocked (FILE *__stream) ;






extern FILE *popen (__const char *__command, __const char *__modes) ;


extern int pclose (FILE *__stream) ;





extern char *ctermid (char *__s) ;
# 618 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
extern void flockfile (FILE *__stream) ;



extern int ftrylockfile (FILE *__stream) ;


extern void funlockfile (FILE *__stream) ;
# 639 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 33 "/usr/include/bits/stdio.h" 3
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
  return vfprintf (stdout, __fmt, __arg);
}


extern __inline int
getchar (void)
{
  return _IO_getc (stdin);
}




extern __inline int
getc_unlocked (FILE *__fp)
{
  return ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}


extern __inline int
getchar_unlocked (void)
{
  return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}




extern __inline int
putchar (int __c)
{
  return _IO_putc (__c, stdout);
}




extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
  return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}





extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
  return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}


extern __inline int
putchar_unlocked (int __c)
{
  return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 111 "/usr/include/bits/stdio.h" 3
extern __inline int
feof_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x10) != 0);
}


extern __inline int
ferror_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x20) != 0);
}
# 640 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h" 2 3
# 18 "win32.c" 2
# 1 "/usr/include/pthread.h" 1 3
# 18 "/usr/include/pthread.h" 3
# 1 "/usr/include/features.h" 1 3
# 19 "/usr/include/pthread.h" 2 3

# 1 "/usr/include/sched.h" 1 3
# 23 "/usr/include/sched.h" 3
# 1 "/usr/include/features.h" 1 3
# 24 "/usr/include/sched.h" 2 3


# 1 "/usr/include/bits/types.h" 1 3
# 27 "/usr/include/sched.h" 2 3


# 1 "/usr/include/time.h" 1 3
# 30 "/usr/include/sched.h" 2 3


# 1 "/usr/include/bits/sched.h" 1 3
# 47 "/usr/include/bits/sched.h" 3
struct sched_param
  {
    int __sched_priority;
  };





extern int clone (int (*__fn) (void *__arg), void *__child_stack,
                  int __flags, void *__arg) ;
# 33 "/usr/include/sched.h" 2 3







extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
            ;


extern int sched_getparam (__pid_t __pid, struct sched_param *__param) ;


extern int sched_setscheduler (__pid_t __pid, int __policy,
                               __const struct sched_param *__param) ;


extern int sched_getscheduler (__pid_t __pid) ;


extern int sched_yield (void) ;


extern int sched_get_priority_max (int __algorithm) ;


extern int sched_get_priority_min (int __algorithm) ;


extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) ;
# 21 "/usr/include/pthread.h" 2 3
# 1 "/usr/include/time.h" 1 3
# 22 "/usr/include/pthread.h" 2 3


# 1 "/usr/include/signal.h" 1 3
# 29 "/usr/include/signal.h" 3
# 1 "/usr/include/features.h" 1 3
# 30 "/usr/include/signal.h" 2 3



# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;




typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  } __sigset_t;
# 34 "/usr/include/signal.h" 2 3
# 48 "/usr/include/signal.h" 3
typedef __sigset_t sigset_t;
# 25 "/usr/include/pthread.h" 2 3
# 1 "/usr/include/bits/pthreadtypes.h" 1 3
# 26 "/usr/include/pthread.h" 2 3
# 1 "/usr/include/bits/initspin.h" 1 3
# 27 "/usr/include/pthread.h" 2 3
# 59 "/usr/include/pthread.h" 3
enum
{
  PTHREAD_CREATE_JOINABLE,

  PTHREAD_CREATE_DETACHED

};

enum
{
  PTHREAD_INHERIT_SCHED,

  PTHREAD_EXPLICIT_SCHED

};

enum
{
  PTHREAD_SCOPE_SYSTEM,

  PTHREAD_SCOPE_PROCESS

};

enum
{
  PTHREAD_MUTEX_TIMED_NP,
  PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_ADAPTIVE_NP
# 100 "/usr/include/pthread.h" 3
};

enum
{
  PTHREAD_PROCESS_PRIVATE,

  PTHREAD_PROCESS_SHARED

};
# 131 "/usr/include/pthread.h" 3
struct _pthread_cleanup_buffer
{
  void (*__routine) (void *);
  void *__arg;
  int __canceltype;
  struct _pthread_cleanup_buffer *__prev;
};



enum
{
  PTHREAD_CANCEL_ENABLE,

  PTHREAD_CANCEL_DISABLE

};
enum
{
  PTHREAD_CANCEL_DEFERRED,

  PTHREAD_CANCEL_ASYNCHRONOUS

};
# 163 "/usr/include/pthread.h" 3
extern int pthread_create (pthread_t *__restrict __thread,
                           __const pthread_attr_t *__restrict __attr,
                           void *(*__start_routine) (void *),
                           void *__restrict __arg) ;


extern pthread_t pthread_self (void) ;


extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) ;


extern void pthread_exit (void *__retval)
             __attribute__ ((__noreturn__));




extern int pthread_join (pthread_t __th, void **__thread_return) ;





extern int pthread_detach (pthread_t __th) ;







extern int pthread_attr_init (pthread_attr_t *__attr) ;


extern int pthread_attr_destroy (pthread_attr_t *__attr) ;


extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
                                        int __detachstate) ;


extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
                                        int *__detachstate) ;


extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
                                       __const struct sched_param *__restrict
                                       __param) ;


extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
                                       __attr,
                                       struct sched_param *__restrict __param)
            ;


extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
            ;


extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
                                        __attr, int *__restrict __policy)
            ;


extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
                                         int __inherit) ;


extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
                                         __attr, int *__restrict __inherit)
            ;


extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
            ;


extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
                                  int *__restrict __scope) ;
# 260 "/usr/include/pthread.h" 3
extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
                                      void *__stackaddr) ;


extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
                                      __attr, void **__restrict __stackaddr)
            ;
# 284 "/usr/include/pthread.h" 3
extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
                                      size_t __stacksize) ;


extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
                                      __attr, size_t *__restrict __stacksize)
            ;
# 301 "/usr/include/pthread.h" 3
extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
                                  __const struct sched_param *__param)
            ;


extern int pthread_getschedparam (pthread_t __target_thread,
                                  int *__restrict __policy,
                                  struct sched_param *__restrict __param)
            ;
# 331 "/usr/include/pthread.h" 3
extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
                               __const pthread_mutexattr_t *__restrict
                               __mutex_attr) ;


extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) ;


extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) ;


extern int pthread_mutex_lock (pthread_mutex_t *__mutex) ;
# 352 "/usr/include/pthread.h" 3
extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) ;






extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) ;


extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) ;


extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
                                         __restrict __attr,
                                         int *__restrict __pshared) ;


extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
                                         int __pshared) ;
# 390 "/usr/include/pthread.h" 3
extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
                              __const pthread_condattr_t *__restrict
                              __cond_attr) ;


extern int pthread_cond_destroy (pthread_cond_t *__cond) ;


extern int pthread_cond_signal (pthread_cond_t *__cond) ;


extern int pthread_cond_broadcast (pthread_cond_t *__cond) ;



extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
                              pthread_mutex_t *__restrict __mutex) ;





extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
                                   pthread_mutex_t *__restrict __mutex,
                                   __const struct timespec *__restrict
                                   __abstime) ;




extern int pthread_condattr_init (pthread_condattr_t *__attr) ;


extern int pthread_condattr_destroy (pthread_condattr_t *__attr) ;


extern int pthread_condattr_getpshared (__const pthread_condattr_t *
                                        __restrict __attr,
                                        int *__restrict __pshared) ;


extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
                                        int __pshared) ;
# 556 "/usr/include/pthread.h" 3
extern int pthread_key_create (pthread_key_t *__key,
                               void (*__destr_function) (void *)) ;


extern int pthread_key_delete (pthread_key_t __key) ;


extern int pthread_setspecific (pthread_key_t __key,
                                __const void *__pointer) ;


extern void *pthread_getspecific (pthread_key_t __key) ;
# 576 "/usr/include/pthread.h" 3
extern int pthread_once (pthread_once_t *__once_control,
                         void (*__init_routine) (void)) ;






extern int pthread_setcancelstate (int __state, int *__oldstate) ;



extern int pthread_setcanceltype (int __type, int *__oldtype) ;


extern int pthread_cancel (pthread_t __thread) ;




extern void pthread_testcancel (void) ;
# 610 "/usr/include/pthread.h" 3
extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
                                   void (*__routine) (void *),
                                   void *__arg) ;







extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
                                  int __execute) ;
# 655 "/usr/include/pthread.h" 3
# 1 "/usr/include/bits/sigthread.h" 1 3
# 31 "/usr/include/bits/sigthread.h" 3
extern int pthread_sigmask (int __how,
                            __const __sigset_t *__restrict __newmask,
                            __sigset_t *__restrict __oldmask);


extern int pthread_kill (pthread_t __thread, int __signo) ;
# 656 "/usr/include/pthread.h" 2 3
# 671 "/usr/include/pthread.h" 3
extern int pthread_atfork (void (*__prepare) (void),
                           void (*__parent) (void),
                           void (*__child) (void)) ;




extern void pthread_kill_other_threads_np (void) ;
# 19 "win32.c" 2
# 1 "/usr/include/errno.h" 1 3
# 29 "/usr/include/errno.h" 3
# 1 "/usr/include/features.h" 1 3
# 30 "/usr/include/errno.h" 2 3






# 1 "/usr/include/bits/errno.h" 1 3
# 25 "/usr/include/bits/errno.h" 3
# 1 "/usr/include/linux/errno.h" 1 3



# 1 "/usr/include/asm/errno.h" 1 3
# 5 "/usr/include/linux/errno.h" 2 3
# 26 "/usr/include/bits/errno.h" 2 3
# 36 "/usr/include/bits/errno.h" 3
extern int errno;


extern int *__errno_location (void) __attribute__ ((__const__));
# 37 "/usr/include/errno.h" 2 3
# 20 "win32.c" 2
# 1 "/usr/include/ctype.h" 1 3
# 26 "/usr/include/ctype.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/ctype.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 28 "/usr/include/ctype.h" 2 3
# 40 "/usr/include/ctype.h" 3
# 1 "/usr/include/endian.h" 1 3
# 41 "/usr/include/ctype.h" 2 3






enum
{
  _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
  _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
  _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
  _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
  _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
  _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
  _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
  _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
  _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
  _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
  _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
  _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
};
# 75 "/usr/include/ctype.h" 3
extern __const unsigned short int *__ctype_b;
extern __const __int32_t *__ctype_tolower;
extern __const __int32_t *__ctype_toupper;
# 91 "/usr/include/ctype.h" 3
extern int isalnum (int) ;
extern int isalpha (int) ;
extern int iscntrl (int) ;
extern int isdigit (int) ;
extern int islower (int) ;
extern int isgraph (int) ;
extern int isprint (int) ;
extern int ispunct (int) ;
extern int isspace (int) ;
extern int isupper (int) ;
extern int isxdigit (int) ;







extern int tolower (int __c) ;


extern int toupper (int __c) ;






extern int isascii (int __c) ;



extern int toascii (int __c) ;



extern int _toupper (int) ;
extern int _tolower (int) ;
# 167 "/usr/include/ctype.h" 3
extern __inline int
tolower (int __c)
{
  return __c >= -128 && __c < 256 ? __ctype_tolower[__c] : __c;
}

extern __inline int
toupper (int __c)
{
  return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
}
# 21 "win32.c" 2
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/stdlib.h" 2 3







# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
# 94 "/usr/include/stdlib.h" 3
typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;
# 133 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) ;



extern double atof (__const char *__nptr) __attribute__ ((__pure__));

extern int atoi (__const char *__nptr) __attribute__ ((__pure__));

extern long int atol (__const char *__nptr) __attribute__ ((__pure__));



__extension__ extern long long int atoll (__const char *__nptr)
             __attribute__ ((__pure__));



extern double strtod (__const char *__restrict __nptr,
                      char **__restrict __endptr) ;
# 163 "/usr/include/stdlib.h" 3
extern long int strtol (__const char *__restrict __nptr,
                        char **__restrict __endptr, int __base) ;

extern unsigned long int strtoul (__const char *__restrict __nptr,
                                  char **__restrict __endptr, int __base)
            ;



__extension__
extern long long int strtoq (__const char *__restrict __nptr,
                             char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
                                       char **__restrict __endptr, int __base)
            ;






__extension__
extern long long int strtoll (__const char *__restrict __nptr,
                              char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
                                        char **__restrict __endptr, int __base)
            ;
# 250 "/usr/include/stdlib.h" 3
extern double __strtod_internal (__const char *__restrict __nptr,
                                 char **__restrict __endptr, int __group)
            ;
extern float __strtof_internal (__const char *__restrict __nptr,
                                char **__restrict __endptr, int __group)
            ;
extern long double __strtold_internal (__const char *__restrict __nptr,
                                       char **__restrict __endptr,
                                       int __group) ;

extern long int __strtol_internal (__const char *__restrict __nptr,
                                   char **__restrict __endptr,
                                   int __base, int __group) ;



extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
                                             char **__restrict __endptr,
                                             int __base, int __group) ;
# 293 "/usr/include/stdlib.h" 3
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
  return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
        int __base)
{
  return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoul_internal (__nptr, __endptr, __base, 0);
}
# 325 "/usr/include/stdlib.h" 3
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
        int __base)
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}



__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
          int __base)
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}


extern __inline double
atof (__const char *__nptr)
{
  return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
  return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
  return strtol (__nptr, (char **) ((void *)0), 10);
}


__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
  return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 384 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) ;


extern long int a64l (__const char *__s) __attribute__ ((__pure__));


# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/sys/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/types.h" 2 3



# 1 "/usr/include/bits/types.h" 1 3
# 31 "/usr/include/sys/types.h" 2 3



typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;




typedef __loff_t loff_t;



typedef __ino_t ino_t;
# 61 "/usr/include/sys/types.h" 3
typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;
# 99 "/usr/include/sys/types.h" 3
typedef __pid_t pid_t;




typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;
# 132 "/usr/include/sys/types.h" 3
# 1 "/usr/include/time.h" 1 3
# 133 "/usr/include/sys/types.h" 2 3
# 146 "/usr/include/sys/types.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 147 "/usr/include/sys/types.h" 2 3



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 196 "/usr/include/sys/types.h" 3
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));

typedef int register_t __attribute__ ((__mode__ (__word__)));
# 212 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 213 "/usr/include/sys/types.h" 2 3


# 1 "/usr/include/sys/select.h" 1 3
# 25 "/usr/include/sys/select.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/sigset.h" 1 3
# 35 "/usr/include/sys/select.h" 2 3
# 43 "/usr/include/sys/select.h" 3
# 1 "/usr/include/time.h" 1 3
# 44 "/usr/include/sys/select.h" 2 3

# 1 "/usr/include/bits/time.h" 1 3
# 63 "/usr/include/bits/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 64 "/usr/include/bits/time.h" 2 3



struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 46 "/usr/include/sys/select.h" 2 3



typedef long int __fd_mask;







typedef struct
  {






    __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];


  } fd_set;






typedef __fd_mask fd_mask;
# 96 "/usr/include/sys/select.h" 3
extern int select (int __nfds, fd_set *__restrict __readfds,
                   fd_set *__restrict __writefds,
                   fd_set *__restrict __exceptfds,
                   struct timeval *__restrict __timeout) ;
# 216 "/usr/include/sys/types.h" 2 3


# 1 "/usr/include/sys/sysmacros.h" 1 3
# 219 "/usr/include/sys/types.h" 2 3
# 230 "/usr/include/sys/types.h" 3
typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 391 "/usr/include/stdlib.h" 2 3






extern long int random (void) ;


extern void srandom (unsigned int __seed) ;





extern char *initstate (unsigned int __seed, char *__statebuf,
                        size_t __statelen) ;



extern char *setstate (char *__statebuf) ;







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
                     int32_t *__restrict __result) ;

extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
                        size_t __statelen,
                        struct random_data *__restrict __buf) ;

extern int setstate_r (char *__restrict __statebuf,
                       struct random_data *__restrict __buf) ;





extern int rand (void) ;

extern void srand (unsigned int __seed) ;



extern int rand_r (unsigned int *__seed) ;







extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;


extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;


extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;


extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    unsigned long long int __a;
  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;


extern int lrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int mrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
            ;

extern int seed48_r (unsigned short int __seed16v[3],
                     struct drand48_data *__buffer) ;

extern int lcong48_r (unsigned short int __param[7],
                      struct drand48_data *__buffer) ;
# 536 "/usr/include/stdlib.h" 3
extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__));

extern void free (void *__ptr) ;



extern void cfree (void *__ptr) ;



# 1 "/usr/include/alloca.h" 1 3
# 22 "/usr/include/alloca.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/alloca.h" 2 3


# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3







extern void *alloca (size_t __size) ;
# 547 "/usr/include/stdlib.h" 2 3




extern void *valloc (size_t __size) __attribute__ ((__malloc__));
# 561 "/usr/include/stdlib.h" 3
extern void abort (void) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) ;




extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
            ;





extern void exit (int __status) __attribute__ ((__noreturn__));
# 587 "/usr/include/stdlib.h" 3
extern char *getenv (__const char *__name) ;



extern char *__secure_getenv (__const char *__name) ;





extern int putenv (char *__string) ;





extern int setenv (__const char *__name, __const char *__value, int __replace)
            ;


extern int unsetenv (__const char *__name) ;






extern int clearenv (void) ;
# 623 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;







extern int mkstemp (char *__template) ;
# 650 "/usr/include/stdlib.h" 3
extern char *mkdtemp (char *__template) ;




extern int system (__const char *__command) ;
# 672 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name,
                       char *__restrict __resolved) ;






typedef int (*__compar_fn_t) (__const void *, __const void *);
# 689 "/usr/include/stdlib.h" 3
extern void *bsearch (__const void *__key, __const void *__base,
                      size_t __nmemb, size_t __size, __compar_fn_t __compar);



extern void qsort (void *__base, size_t __nmemb, size_t __size,
                   __compar_fn_t __compar);



extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
# 710 "/usr/include/stdlib.h" 3
extern div_t div (int __numer, int __denom)
             __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
             __attribute__ ((__const__));
# 728 "/usr/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *gcvt (double __value, int __ndigit, char *__buf) ;




extern char *qecvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;

extern int qecvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;






extern int mblen (__const char *__s, size_t __n) ;


extern int mbtowc (wchar_t *__restrict __pwc,
                   __const char *__restrict __s, size_t __n) ;


extern int wctomb (char *__s, wchar_t __wchar) ;



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
                        __const char *__restrict __s, size_t __n) ;

extern size_t wcstombs (char *__restrict __s,
                        __const wchar_t *__restrict __pwcs, size_t __n)
            ;







extern int rpmatch (__const char *__response) ;
# 858 "/usr/include/stdlib.h" 3
extern int getloadavg (double __loadavg[], int __nelem) ;
# 22 "win32.c" 2

# 1 "/usr/include/malloc.h" 1 3
# 23 "/usr/include/malloc.h" 3
# 1 "/usr/include/features.h" 1 3
# 24 "/usr/include/malloc.h" 2 3
# 44 "/usr/include/malloc.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 147 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 3
typedef int ptrdiff_t;
# 45 "/usr/include/malloc.h" 2 3
# 113 "/usr/include/malloc.h" 3
extern int __malloc_initialized;







extern void * malloc (size_t __size) __attribute__ ((__malloc__));


extern void * calloc (size_t __nmemb, size_t __size)
       __attribute__ ((__malloc__));



extern void * realloc (void * __ptr, size_t __size)

       __attribute__ ((__malloc__));


extern void free (void * __ptr) ;


extern void cfree (void * __ptr) ;


extern void * memalign (size_t __alignment, size_t __size) ;


extern void * valloc (size_t __size) __attribute__ ((__malloc__));



extern void * pvalloc (size_t __size)
       __attribute__ ((__malloc__));



extern void * (*__morecore) (ptrdiff_t __size);


extern void * __default_morecore (ptrdiff_t __size)
       __attribute__ ((__malloc__));


struct mallinfo {
  int arena;
  int ordblks;
  int smblks;
  int hblks;
  int hblkhd;
  int usmblks;
  int fsmblks;
  int uordblks;
  int fordblks;
  int keepcost;
};


extern struct mallinfo mallinfo (void) ;
# 197 "/usr/include/malloc.h" 3
extern int mallopt (int __param, int __val) ;



extern int malloc_trim (size_t __pad) ;



extern size_t malloc_usable_size (void * __ptr) ;


extern void malloc_stats (void) ;


extern void * malloc_get_state (void) ;



extern int malloc_set_state (void * __ptr) ;





extern void (*__malloc_initialize_hook) (void);

extern void (*__free_hook) (void * __ptr, __const void *);

extern void * (*__malloc_hook) (size_t __size, __const void *);

extern void * (*__realloc_hook) (void * __ptr, size_t __size, __const void *);


extern void * (*__memalign_hook) (size_t __alignment, size_t __size, __const void *);


extern void (*__after_morecore_hook) (void);


extern void __malloc_check_init (void) ;
# 24 "win32.c" 2

# 1 "/usr/include/time.h" 1 3
# 26 "win32.c" 2
# 1 "/usr/include/unistd.h" 1 3
# 26 "/usr/include/unistd.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/unistd.h" 2 3
# 175 "/usr/include/unistd.h" 3
# 1 "/usr/include/bits/posix_opt.h" 1 3
# 176 "/usr/include/unistd.h" 2 3
# 190 "/usr/include/unistd.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 191 "/usr/include/unistd.h" 2 3
# 199 "/usr/include/unistd.h" 3
# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stddef.h" 1 3
# 200 "/usr/include/unistd.h" 2 3
# 247 "/usr/include/unistd.h" 3
typedef __socklen_t socklen_t;
# 260 "/usr/include/unistd.h" 3
extern int access (__const char *__name, int __type) ;
# 290 "/usr/include/unistd.h" 3
extern __off_t lseek (int __fd, __off_t __offset, int __whence) ;
# 306 "/usr/include/unistd.h" 3
extern int close (int __fd) ;



extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;


extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
# 353 "/usr/include/unistd.h" 3
extern int pipe (int __pipedes[2]) ;
# 362 "/usr/include/unistd.h" 3
extern unsigned int alarm (unsigned int __seconds) ;
# 371 "/usr/include/unistd.h" 3
extern unsigned int sleep (unsigned int __seconds) ;






extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
            ;



extern int usleep (__useconds_t __useconds) ;





extern int pause (void) ;



extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
            ;



extern int fchown (int __fd, __uid_t __owner, __gid_t __group) ;




extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
            ;




extern int chdir (__const char *__path) ;



extern int fchdir (int __fd) ;
# 423 "/usr/include/unistd.h" 3
extern char *getcwd (char *__buf, size_t __size) ;
# 436 "/usr/include/unistd.h" 3
extern char *getwd (char *__buf) ;




extern int dup (int __fd) ;


extern int dup2 (int __fd, int __fd2) ;


extern char **__environ;







extern int execve (__const char *__path, char *__const __argv[],
                   char *__const __envp[]) ;
# 467 "/usr/include/unistd.h" 3
extern int execv (__const char *__path, char *__const __argv[]) ;



extern int execle (__const char *__path, __const char *__arg, ...) ;



extern int execl (__const char *__path, __const char *__arg, ...) ;



extern int execvp (__const char *__file, char *__const __argv[]) ;




extern int execlp (__const char *__file, __const char *__arg, ...) ;




extern int nice (int __inc) ;




extern void _exit (int __status) __attribute__ ((__noreturn__));





# 1 "/usr/include/bits/confname.h" 1 3
# 25 "/usr/include/bits/confname.h" 3
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS,

    _PC_REC_INCR_XFER_SIZE,

    _PC_REC_MAX_XFER_SIZE,

    _PC_REC_MIN_XFER_SIZE,

    _PC_REC_XFER_ALIGN,

    _PC_ALLOC_SIZE_MIN,

    _PC_SYMLINK_MAX

  };


enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,




    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,



    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG

  };





enum
  {
    _CS_PATH,
# 563 "/usr/include/bits/confname.h" 3
    _CS_V6_WIDTH_RESTRICTED_ENVS

  };
# 501 "/usr/include/unistd.h" 2 3


extern long int pathconf (__const char *__path, int __name) ;


extern long int fpathconf (int __fd, int __name) ;


extern long int sysconf (int __name) __attribute__ ((__const__));



extern size_t confstr (int __name, char *__buf, size_t __len) ;




extern __pid_t getpid (void) ;


extern __pid_t getppid (void) ;




extern __pid_t getpgrp (void) ;
# 536 "/usr/include/unistd.h" 3
extern __pid_t __getpgid (__pid_t __pid) ;
# 545 "/usr/include/unistd.h" 3
extern int setpgid (__pid_t __pid, __pid_t __pgid) ;
# 562 "/usr/include/unistd.h" 3
extern int setpgrp (void) ;
# 580 "/usr/include/unistd.h" 3
extern __pid_t setsid (void) ;







extern __uid_t getuid (void) ;


extern __uid_t geteuid (void) ;


extern __gid_t getgid (void) ;


extern __gid_t getegid (void) ;




extern int getgroups (int __size, __gid_t __list[]) ;
# 613 "/usr/include/unistd.h" 3
extern int setuid (__uid_t __uid) ;




extern int setreuid (__uid_t __ruid, __uid_t __euid) ;




extern int seteuid (__uid_t __uid) ;






extern int setgid (__gid_t __gid) ;




extern int setregid (__gid_t __rgid, __gid_t __egid) ;




extern int setegid (__gid_t __gid) ;






extern __pid_t fork (void) ;






extern __pid_t vfork (void) ;





extern char *ttyname (int __fd) ;



extern int ttyname_r (int __fd, char *__buf, size_t __buflen) ;



extern int isatty (int __fd) ;





extern int ttyslot (void) ;




extern int link (__const char *__from, __const char *__to) ;



extern int symlink (__const char *__from, __const char *__to) ;




extern int readlink (__const char *__restrict __path, char *__restrict __buf,
                     size_t __len) ;



extern int unlink (__const char *__name) ;


extern int rmdir (__const char *__path) ;



extern __pid_t tcgetpgrp (int __fd) ;


extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) ;



extern char *getlogin (void) ;
# 717 "/usr/include/unistd.h" 3
extern int setlogin (__const char *__name) ;
# 726 "/usr/include/unistd.h" 3
# 1 "/usr/include/getopt.h" 1 3
# 47 "/usr/include/getopt.h" 3
extern char *optarg;
# 61 "/usr/include/getopt.h" 3
extern int optind;




extern int opterr;



extern int optopt;
# 145 "/usr/include/getopt.h" 3
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
# 727 "/usr/include/unistd.h" 2 3







extern int gethostname (char *__name, size_t __len) ;






extern int sethostname (__const char *__name, size_t __len) ;



extern int sethostid (long int __id) ;





extern int getdomainname (char *__name, size_t __len) ;
extern int setdomainname (__const char *__name, size_t __len) ;





extern int vhangup (void) ;


extern int revoke (__const char *__file) ;







extern int profil (unsigned short int *__sample_buffer, size_t __size,
                   size_t __offset, unsigned int __scale) ;





extern int acct (__const char *__name) ;



extern char *getusershell (void) ;
extern void endusershell (void) ;
extern void setusershell (void) ;





extern int daemon (int __nochdir, int __noclose) ;






extern int chroot (__const char *__path) ;



extern char *getpass (__const char *__prompt) ;





extern int fsync (int __fd) ;






extern long int gethostid (void) ;


extern void sync (void) ;




extern int getpagesize (void) __attribute__ ((__const__));




extern int truncate (__const char *__file, __off_t __length) ;
# 841 "/usr/include/unistd.h" 3
extern int ftruncate (int __fd, __off_t __length) ;
# 857 "/usr/include/unistd.h" 3
extern int getdtablesize (void) ;
# 866 "/usr/include/unistd.h" 3
extern int brk (void *__addr) ;





extern void *sbrk (intptr_t __delta) ;
# 887 "/usr/include/unistd.h" 3
extern long int syscall (long int __sysno, ...) ;
# 907 "/usr/include/unistd.h" 3
extern int lockf (int __fd, int __cmd, __off_t __len) ;
# 938 "/usr/include/unistd.h" 3
extern int fdatasync (int __fildes) ;
# 983 "/usr/include/unistd.h" 3
extern int pthread_atfork (void (*__prepare) (void),
                           void (*__parent) (void),
                           void (*__child) (void)) ;
# 27 "win32.c" 2
# 1 "/usr/include/fcntl.h" 1 3
# 26 "/usr/include/fcntl.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/fcntl.h" 2 3






# 1 "/usr/include/bits/fcntl.h" 1 3
# 25 "/usr/include/bits/fcntl.h" 3
# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/bits/fcntl.h" 2 3
# 136 "/usr/include/bits/fcntl.h" 3
struct flock
  {
    short int l_type;
    short int l_whence;

    __off_t l_start;
    __off_t l_len;




    __pid_t l_pid;
  };
# 34 "/usr/include/fcntl.h" 2 3
# 60 "/usr/include/fcntl.h" 3
extern int fcntl (int __fd, int __cmd, ...) ;





extern int open (__const char *__file, int __oflag, ...) ;
# 83 "/usr/include/fcntl.h" 3
extern int creat (__const char *__file, __mode_t __mode) ;
# 28 "win32.c" 2
# 1 "/usr/include/sys/types.h" 1 3
# 29 "win32.c" 2
# 1 "/usr/include/sys/time.h" 1 3
# 22 "/usr/include/sys/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/bits/types.h" 1 3
# 25 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/time.h" 1 3
# 27 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/bits/time.h" 1 3
# 29 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/sys/select.h" 1 3
# 31 "/usr/include/sys/time.h" 2 3


typedef __suseconds_t suseconds_t;
# 56 "/usr/include/sys/time.h" 3
struct timezone
  {
    int tz_minuteswest;
    int tz_dsttime;
  };

typedef struct timezone *__restrict __timezone_ptr_t;
# 72 "/usr/include/sys/time.h" 3
extern int gettimeofday (struct timeval *__restrict __tv,
                         __timezone_ptr_t __tz) ;




extern int settimeofday (__const struct timeval *__tv,
                         __const struct timezone *__tz) ;





extern int adjtime (__const struct timeval *__delta,
                    struct timeval *__olddelta) ;




enum __itimer_which
  {

    ITIMER_REAL = 0,


    ITIMER_VIRTUAL = 1,



    ITIMER_PROF = 2

  };



struct itimerval
  {

    struct timeval it_interval;

    struct timeval it_value;
  };






typedef int __itimer_which_t;




extern int getitimer (__itimer_which_t __which,
                      struct itimerval *__value) ;




extern int setitimer (__itimer_which_t __which,
                      __const struct itimerval *__restrict __new,
                      struct itimerval *__restrict __old) ;



extern int utimes (__const char *__file, __const struct timeval __tvp[2])
            ;
# 30 "win32.c" 2
# 1 "/usr/include/sys/timeb.h" 1 3
# 22 "/usr/include/sys/timeb.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/sys/timeb.h" 2 3


# 1 "/usr/include/time.h" 1 3
# 26 "/usr/include/sys/timeb.h" 2 3






struct timeb
  {
    time_t time;
    unsigned short int millitm;
    short int timezone;
    short int dstflag;
  };



extern int ftime (struct timeb *__timebuf);
# 31 "win32.c" 2




# 1 "wine/winbase.h" 1
# 36 "win32.c" 2
# 1 "wine/winreg.h" 1






# 1 "wine/winbase.h" 1
# 8 "wine/winreg.h" 2
# 1 "wine/winnt.h" 1
# 9 "wine/winreg.h" 2
# 37 "wine/winreg.h"
typedef struct value_entA
{ LPSTR ve_valuename;
    DWORD ve_valuelen;
    DWORD_PTR ve_valueptr;
    DWORD ve_type;
} VALENTA, *PVALENTA;

typedef struct value_entW {
    LPWSTR ve_valuename;
    DWORD ve_valuelen;
    DWORD_PTR ve_valueptr;
    DWORD ve_type;
} VALENTW, *PVALENTW;

typedef ACCESS_MASK REGSAM;
# 37 "win32.c" 2
# 1 "wine/winnt.h" 1
# 38 "win32.c" 2
# 1 "wine/winerror.h" 1




extern int WIN32_LastError;
# 39 "win32.c" 2
# 1 "wine/debugtools.h" 1






# 1 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdarg.h" 1 3
# 110 "/usr/lib/gcc-lib/i386-linux/3.0.2/include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 8 "wine/debugtools.h" 2
# 1 "../config.h" 1
# 9 "wine/debugtools.h" 2
# 1 "wine/windef.h" 1
# 10 "wine/debugtools.h" 2

struct _GUID;



enum __DEBUG_CLASS { __DBCL_FIXME, __DBCL_ERR, __DBCL_WARN, __DBCL_TRACE, __DBCL_COUNT };
# 51 "wine/debugtools.h"
extern LPCSTR debugstr_an (LPCSTR s, int n);
extern LPCSTR debugstr_wn (LPCWSTR s, int n);
extern LPCSTR debugres_a (LPCSTR res);
extern LPCSTR debugres_w (LPCWSTR res);
extern LPCSTR debugstr_guid( const struct _GUID *id );
extern LPCSTR debugstr_hex_dump (const void *ptr, int len);
extern int dbg_header_err( const char *dbg_channel, const char *func );
extern int dbg_header_warn( const char *dbg_channel, const char *func );
extern int dbg_header_fixme( const char *dbg_channel, const char *func );
extern int dbg_header_trace( const char *dbg_channel, const char *func );
extern int dbg_vprintf( const char *format, va_list args );

static inline LPCSTR debugstr_a( LPCSTR s ) { return debugstr_an( s, 80 ); }
static inline LPCSTR debugstr_w( LPCWSTR s ) { return debugstr_wn( s, 80 ); }


extern int __vprintf(const char *format, ...) __attribute__((format (printf,1,2)));
# 40 "win32.c" 2
# 1 "wine/module.h" 1
# 10 "wine/module.h"
# 1 "wine/windef.h" 1
# 11 "wine/module.h" 2

# 1 "wine/pe_image.h" 1



# 1 "wine/windef.h" 1
# 5 "wine/pe_image.h" 2
# 1 "wine/winbase.h" 1
# 6 "wine/pe_image.h" 2
# 20 "wine/pe_image.h"
typedef struct {
        PIMAGE_IMPORT_DESCRIPTOR pe_import;
        PIMAGE_EXPORT_DIRECTORY pe_export;
        PIMAGE_RESOURCE_DIRECTORY pe_resource;
        int tlsindex;
} PE_MODREF;

struct _wine_modref;
extern int PE_unloadImage(HMODULE hModule);
extern FARPROC PE_FindExportedFunction(struct _wine_modref *wm, LPCSTR funcName, WIN_BOOL snoop);
extern WIN_BOOL PE_EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG);
extern WIN_BOOL PE_EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG);
extern WIN_BOOL PE_EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,LONG);
extern WIN_BOOL PE_EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,LONG);
extern WIN_BOOL PE_EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG);
extern WIN_BOOL PE_EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG);
extern HRSRC PE_FindResourceExW(struct _wine_modref*,LPCWSTR,LPCWSTR,WORD);
extern DWORD PE_SizeofResource(HMODULE,HRSRC);
extern struct _wine_modref *PE_LoadLibraryExA(LPCSTR, DWORD);
extern void PE_UnloadLibrary(struct _wine_modref *);
extern HGLOBAL PE_LoadResource(struct _wine_modref *wm,HRSRC);
extern HMODULE PE_LoadImage( int hFile, LPCSTR filename, WORD *version );
extern struct _wine_modref *PE_CreateModule( HMODULE hModule, LPCSTR filename,
                                             DWORD flags, WIN_BOOL builtin );
extern WIN_BOOL PE_CreateProcess( HANDLE hFile, LPCSTR filename, LPCSTR cmd_line, LPCSTR env,
                              LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
                              WIN_BOOL inherit, DWORD flags, LPSTARTUPINFOA startup,
                              LPPROCESS_INFORMATION info );

extern void PE_InitTls(void);
extern WIN_BOOL PE_InitDLL(struct _wine_modref *wm, DWORD type, LPVOID lpReserved);

extern PIMAGE_RESOURCE_DIRECTORY GetResDirEntryA(PIMAGE_RESOURCE_DIRECTORY,LPCSTR,DWORD,WIN_BOOL);
extern PIMAGE_RESOURCE_DIRECTORY GetResDirEntryW(PIMAGE_RESOURCE_DIRECTORY,LPCWSTR,DWORD,WIN_BOOL);

typedef DWORD __attribute__((__stdcall__)) (*DLLENTRYPROC)(HMODULE,DWORD,LPVOID);

typedef struct {
        WORD popl __attribute__((packed));
        DWORD addr_popped __attribute__((packed));
        BYTE pushl1 __attribute__((packed));
        DWORD newret __attribute__((packed));
        BYTE pushl2 __attribute__((packed));
        DWORD origfun __attribute__((packed));
        BYTE ret1 __attribute__((packed));
        WORD addesp __attribute__((packed));
        BYTE nrofargs __attribute__((packed));
        BYTE pushl3 __attribute__((packed));
        DWORD oldret __attribute__((packed));
        BYTE ret2 __attribute__((packed));
} ELF_STDCALL_STUB;

typedef struct {
        void* dlhandle;
        ELF_STDCALL_STUB *stubs;
} ELF_MODREF;

extern struct _wine_modref *ELF_LoadLibraryExA( LPCSTR libname, DWORD flags);
extern void ELF_UnloadLibrary(struct _wine_modref *);
extern FARPROC ELF_FindExportedFunction(struct _wine_modref *wm, LPCSTR funcName);
# 13 "wine/module.h" 2



typedef struct {
    BYTE type;
    BYTE flags;
    BYTE segnum;
    WORD offs __attribute__((packed));
} ET_ENTRY;

typedef struct {
    WORD first;
    WORD last;
    WORD next;
} ET_BUNDLE;



typedef struct
{
    WORD filepos;
    WORD size;
    WORD flags;
    WORD minsize;
    HANDLE16 hSeg;

} SEGTABLEENTRY;




# 1 "wine/pshpack1.h" 1
# 45 "wine/module.h" 2

typedef struct
{
    WORD version;
    WORD reserved;
    FARPROC16 BootApp;
    FARPROC16 LoadAppSeg;
    FARPROC16 reserved2;
    FARPROC16 MyAlloc;

    FARPROC16 EntryAddrProc;
    FARPROC16 ExitProc;
    WORD reserved3[4];
    FARPROC16 SetOwner;
} SELFLOADHEADER;


typedef struct
{
    HGLOBAL16 hEnvironment;
    SEGPTR cmdLine __attribute__((packed));
    SEGPTR showCmd __attribute__((packed));
    SEGPTR reserved __attribute__((packed));
} LOADPARAMS16;

typedef struct
{
    LPSTR lpEnvAddress;
    LPSTR lpCmdLine;
    UINT16 *lpCmdShow;
    DWORD dwReserved;
} LOADPARAMS;

# 1 "wine/poppack.h" 1




#pragma pack()
# 79 "wine/module.h" 2


typedef enum {
        MODULE32_PE = 1,
        MODULE32_ELF,
        MODULE32_ELFDLL
} MODULE32_TYPE;

typedef struct _wine_modref
{
        struct _wine_modref *next;
        struct _wine_modref *prev;
        MODULE32_TYPE type;
        union {
                PE_MODREF pe;
                ELF_MODREF elf;
        } binfmt;

        HMODULE module;

        int nDeps;
        struct _wine_modref **deps;

        int flags;
        int refCount;

        char *filename;
        char *modname;
        char *short_filename;
        char *short_modname;
} WINE_MODREF;
# 121 "wine/module.h"
typedef struct resource_typeinfo_s NE_TYPEINFO;
typedef struct resource_nameinfo_s NE_NAMEINFO;
# 134 "wine/module.h"
extern FARPROC MODULE_GetProcAddress( HMODULE hModule, LPCSTR function, WIN_BOOL snoop );
extern WINE_MODREF *MODULE32_LookupHMODULE( HMODULE hModule );
extern WIN_BOOL MODULE_DllProcessAttach( WINE_MODREF *wm, LPVOID lpReserved );
extern void MODULE_DllProcessDetach( WINE_MODREF *wm, WIN_BOOL bForceDetach, LPVOID lpReserved );
extern void MODULE_DllThreadAttach( LPVOID lpReserved );
extern void MODULE_DllThreadDetach( LPVOID lpReserved );
extern WINE_MODREF *MODULE_LoadLibraryExA( LPCSTR libname, HFILE hfile, DWORD flags );
extern WIN_BOOL MODULE_FreeLibrary( WINE_MODREF *wm );
extern WINE_MODREF *MODULE_FindModule( LPCSTR path );
extern HMODULE MODULE_CreateDummyModule( LPCSTR filename, HMODULE module32 );
extern FARPROC16 __attribute__((__stdcall__)) WIN32_GetProcAddress16( HMODULE hmodule, LPCSTR name );
extern SEGPTR __attribute__((__stdcall__)) HasGPHandler16( SEGPTR address );
extern void MODULE_WalkModref( DWORD id );


extern INT __attribute__((__stdcall__)) AccessResource(HMODULE,HRSRC);
# 192 "wine/module.h"
extern WINE_MODREF *BUILTIN32_LoadLibraryExA(LPCSTR name, DWORD flags);
extern HMODULE BUILTIN32_LoadExeModule( LPCSTR *filename );
extern void BUILTIN32_UnloadLibrary(WINE_MODREF *wm);
extern void *BUILTIN32_dlopen( const char *name );
extern int BUILTIN32_dlclose( void *handle );
# 41 "win32.c" 2

# 1 "registry.h" 1
# 14 "registry.h"
long RegOpenKeyExA(long key, const char* subkey, long reserved, long access, int* newkey);
long RegCloseKey(long key);
long RegQueryValueExA(long key, const char* value, int* reserved, int* type, int* data, int* count);
long RegCreateKeyExA(long key, const char* name, long reserved,
                                                           void* classs, long options, long security,
                                                           void* sec_attr, int* newkey, int* status);
long RegSetValueExA(long key, const char* name, long v1, long v2, const void* data, long size);
# 43 "win32.c" 2
# 1 "loader.h" 1
# 11 "loader.h"
# 1 "wine/windef.h" 1
# 12 "loader.h" 2
# 1 "wine/driver.h" 1







# 1 "wine/windef.h" 1
# 9 "wine/driver.h" 2
# 58 "wine/driver.h"
typedef struct {
    DWORD dwDCISize;
    LPCSTR lpszDCISectionName;
    LPCSTR lpszDCIAliasName;
} DRVCONFIGINFO16, *LPDRVCONFIGINFO16;

typedef struct {
    DWORD dwDCISize;
    LPCWSTR lpszDCISectionName;
    LPCWSTR lpszDCIAliasName;
} DRVCONFIGINFO, *LPDRVCONFIGINFO;






typedef struct
{
    UINT16 length;
    HDRVR16 hDriver;
    HINSTANCE16 hModule;
    CHAR szAliasName[128];
} DRIVERINFOSTRUCT16, *LPDRIVERINFOSTRUCT16;

LRESULT __attribute__((__stdcall__)) DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg,
                               LPARAM dwParam1, LPARAM dwParam2);
LRESULT __attribute__((__stdcall__)) DefDriverProc(DWORD dwDriverIdentifier, HDRVR hdrvr,
                               UINT Msg, LPARAM lParam1, LPARAM lParam2);
HDRVR16 __attribute__((__stdcall__)) OpenDriver16(LPCSTR szDriverName, LPCSTR szSectionName,
                            LPARAM lParam2);
HDRVR __attribute__((__stdcall__)) OpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName,
                             LPARAM lParam2);
HDRVR __attribute__((__stdcall__)) OpenDriverW(LPCWSTR szDriverName, LPCWSTR szSectionName,
                             LPARAM lParam2);

LRESULT __attribute__((__stdcall__)) CloseDriver16(HDRVR16 hDriver, LPARAM lParam1, LPARAM lParam2);
LRESULT __attribute__((__stdcall__)) CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2);
LRESULT __attribute__((__stdcall__)) SendDriverMessage16( HDRVR16 hDriver, UINT16 message,
                                    LPARAM lParam1, LPARAM lParam2 );
LRESULT __attribute__((__stdcall__)) SendDriverMessage( HDRVR hDriver, UINT message,
                                    LPARAM lParam1, LPARAM lParam2 );
HMODULE16 __attribute__((__stdcall__)) GetDriverModuleHandle16(HDRVR16 hDriver);
HMODULE __attribute__((__stdcall__)) GetDriverModuleHandle(HDRVR hDriver);

DWORD __attribute__((__stdcall__)) GetDriverFlags( HDRVR hDriver );
# 13 "loader.h" 2
# 1 "wine/mmreg.h" 1
# 15 "wine/mmreg.h"
# 1 "wine/windef.h" 1
# 16 "wine/mmreg.h" 2




typedef struct _WAVEFILTER {
  DWORD cbStruct;
  DWORD dwFilterTag;
  DWORD fdwFilter;
  DWORD dwReserved[5];
} WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER;





typedef struct _WAVEFILTER_VOLUME {
   WAVEFILTER wfltr;
   DWORD dwVolume;
} VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER;





typedef struct WAVEFILTER_ECHO {
   WAVEFILTER wfltr;
   DWORD dwVolume;
   DWORD dwDelay;
} ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER;




typedef struct _WAVEFORMATEX {
  WORD wFormatTag;
  WORD nChannels;
  DWORD nSamplesPerSec;
  DWORD nAvgBytesPerSec;
  WORD nBlockAlign;
  WORD wBitsPerSample;
  WORD cbSize;
} WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;
# 73 "wine/mmreg.h"
typedef struct {
    WAVEFORMATEX Format;
    union {
        WORD wValidBitsPerSample;
        WORD wSamplesPerBlock;
        WORD wReserved;
    } Samples;
    DWORD dwChannelMask;

    GUID SubFormat;
} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
# 14 "loader.h" 2
# 1 "wine/vfw.h" 1
# 9 "wine/vfw.h"
typedef struct
{
    short bfType;
    long bfSize;
    short bfReserved1;
    short bfReserved2;
    long bfOffBits;
} BITMAPFILEHEADER;



typedef struct
{
    long biSize;
    long biWidth;
    long biHeight;
    short biPlanes;
    short biBitCount;
    long biCompression;
    long biSizeImage;
    long biXPelsPerMeter;
    long biYPelsPerMeter;
    long biClrUsed;
    long biClrImportant;
} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
typedef struct {
        BITMAPINFOHEADER bmiHeader;
        int bmiColors[1];
} BITMAPINFO, *LPBITMAPINFO;
# 66 "wine/vfw.h"
typedef struct tagWINE_HIC {
        long magic;
        HANDLE curthread;
        long type;
        long handler;
        HDRVR hdrv;

        long private;



        DRIVERPROC driverproc;
        long x1;
        short x2;
        long x3;

} WINE_HIC;
# 183 "wine/vfw.h"
typedef struct {
        long dwSize;
        long fccType;
        long fccHandler;
        long dwVersion;
        long dwFlags;
        LRESULT dwError;
        void* pV1Reserved;
        void* pV2Reserved;
        long dnDevNode;

} ICOPEN,*LPICOPEN;



typedef struct {
    long dwFlags;
    LPBITMAPINFOHEADER lpbiOutput;
    void* lpOutput;
    LPBITMAPINFOHEADER lpbiInput;
    void* lpInput;
    long* lpckid;
    long* lpdwFlags;
    long lFrameNum;
    long dwFrameSize;
    long dwQuality;
    LPBITMAPINFOHEADER lpbiPrev;
    void* lpPrev;
} ICCOMPRESS;

long ICCompress(
        HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData,
        LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid,
        long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality,
        LPBITMAPINFOHEADER lpbiPrev,void* lpPrev
);
# 265 "wine/vfw.h"
typedef struct {
    long dwFlags;
    LPBITMAPINFOHEADER lpbiOutput;
    LPARAM lOutput;
    LPBITMAPINFOHEADER lpbiInput;
    LPARAM lInput;
    long lStartFrame;
    long lFrameCount;
    long lQuality;
    long lDataRate;
    long lKeyRate;
    long dwRate;
    long dwScale;
    long dwOverheadPerFrame;
    long dwReserved2;
    long __attribute__((__stdcall__)) (*GetData)(LPARAM lInput,long lFrame,void* lpBits,long len);
    long __attribute__((__stdcall__)) (*PutData)(LPARAM lOutput,long lFrame,void* lpBits,long len);
} ICCOMPRESSFRAMES;
# 297 "wine/vfw.h"
typedef struct {
        long dwSize;
        long fccType;
        long fccHandler;
        long dwFlags;
        long dwVersion;
        long dwVersionICM;



        WCHAR szName[16];
        WCHAR szDescription[128];
        WCHAR szDriver[128];

} ICINFO;
# 350 "wine/vfw.h"
typedef struct {
    long dwFlags;
    LPBITMAPINFOHEADER lpbiInput;
    void* lpInput;
    LPBITMAPINFOHEADER lpbiOutput;
    void* lpOutput;
    long ckid;
} ICDECOMPRESS;

typedef struct {
    long dwFlags;
    LPBITMAPINFOHEADER lpbiSrc;
    void* lpSrc;
    LPBITMAPINFOHEADER lpbiDst;
    void* lpDst;


    INT xDst;
    INT yDst;
    INT dxDst;
    INT dyDst;

    INT xSrc;
    INT ySrc;
    INT dxSrc;
    INT dySrc;
} ICDECOMPRESSEX;


long ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);
long ICDecompressEx(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);
long ICUniversalEx(HIC hic,int command,LPBITMAPINFOHEADER lpbiFormat,LPBITMAPINFOHEADER lpbi);
# 437 "wine/vfw.h"
WIN_BOOL ICInfo(long fccType, long fccHandler, ICINFO * lpicinfo);
LRESULT ICGetInfo(HIC hic,ICINFO *picinfo, long cb);
HIC ICOpen(long fccType, long fccHandler, UINT wMode);
HIC ICOpenFunction(long fccType, long fccHandler, unsigned int wMode, void* lpfnHandler);

LRESULT ICClose(HIC hic);
LRESULT ICSendMessage(HIC hic, unsigned int msg, long dw1, long dw2);
HIC ICLocate(long fccType, long fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, short wFlags);

int ICDoSomething(void);

long ICDrawBegin(
        HIC hic,
        long dwFlags,
        HPALETTE hpal,
        HWND hwnd,
        HDC hdc,
        INT xDst,
        INT yDst,
        INT dxDst,
        INT dyDst,
        LPBITMAPINFOHEADER lpbi,
        INT xSrc,
        INT ySrc,
        INT dxSrc,
        INT dySrc,
        long dwRate,
        long dwScale
);


typedef struct {
        long dwFlags;
        HPALETTE hpal;
        HWND hwnd;
        HDC hdc;
        INT xDst;
        INT yDst;
        INT dxDst;
        INT dyDst;
        LPBITMAPINFOHEADER lpbi;
        INT xSrc;
        INT ySrc;
        INT dxSrc;
        INT dySrc;
        long dwRate;
        long dwScale;
} ICDRAWBEGIN;







typedef struct {
        long dwFlags;
        void* lpFormat;
        void* lpData;
        long cbData;
        long lTime;
} ICDRAW;

long ICDraw(HIC hic,long dwFlags,void* lpFormat,void* lpData,long cbData,long lTime);




typedef struct _AVISTREAMINFOA {
    long fccType;
    long fccHandler;
    long dwFlags;
    long dwCaps;
    short wPriority;
    short wLanguage;
    long dwScale;
    long dwRate;
    long dwStart;
    long dwLength;
    long dwInitialFrames;
    long dwSuggestedBufferSize;
    long dwQuality;
    long dwSampleSize;
    RECT rcFrame;
    long dwEditCount;
    long dwFormatChangeCount;
    char szName[64];
} AVISTREAMINFOA, * LPAVISTREAMINFOA, *PAVISTREAMINFOA;

typedef struct _AVISTREAMINFOW {
    long fccType;
    long fccHandler;
    long dwFlags;
    long dwCaps;
    short wPriority;
    short wLanguage;
    long dwScale;
    long dwRate;
    long dwStart;
    long dwLength;
    long dwInitialFrames;
    long dwSuggestedBufferSize;
    long dwQuality;
    long dwSampleSize;
    RECT rcFrame;
    long dwEditCount;
    long dwFormatChangeCount;
    short szName[64];
} AVISTREAMINFOW, * LPAVISTREAMINFOW, *PAVISTREAMINFOW;
# 566 "wine/vfw.h"
typedef struct _AVIFILEINFOW {
    long dwMaxBytesPerSec;
    long dwFlags;
    long dwCaps;
    long dwStreams;
    long dwSuggestedBufferSize;
    long dwWidth;
    long dwHeight;
    long dwScale;
    long dwRate;
    long dwLength;
    long dwEditCount;
    short szFileType[64];
} AVIFILEINFOW, * LPAVIFILEINFOW, *PAVIFILEINFOW;

typedef struct _AVIFILEINFOA {
    long dwMaxBytesPerSec;
    long dwFlags;
    long dwCaps;
    long dwStreams;
    long dwSuggestedBufferSize;
    long dwWidth;
    long dwHeight;
    long dwScale;
    long dwRate;
    long dwLength;
    long dwEditCount;
    char szFileType[64];
} AVIFILEINFOA, * LPAVIFILEINFOA, *PAVIFILEINFOA;
# 606 "wine/vfw.h"
typedef struct {
    long fccType;
    long fccHandler;
    long dwKeyFrameEvery;
    long dwQuality;
    long dwBytesPerSecond;
    long dwFlags;
    void* lpFormat;
    long cbFormat;
    void* lpParms;
    long cbParms;
    long dwInterleaveEvery;
} AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS;



typedef struct {
    long cbSize;

    long dwFlags;
    HIC hic;
    long fccType;
    long fccHandler;

    LPBITMAPINFO lpbiIn;
    LPBITMAPINFO lpbiOut;
    void* lpBitsOut;
    void* lpBitsPrev;
    long lFrame;
    long lKey;
    long lDataRate;
    long lQ;
    long lKeyCount;
    void* lpState;
    long cbState;
} COMPVARS, *PCOMPVARS;
# 15 "loader.h" 2
# 1 "wine/msacm.h" 1







# 1 "wine/windef.h" 1
# 9 "wine/msacm.h" 2
# 1 "wine/driver.h" 1
# 10 "wine/msacm.h" 2
# 1 "wine/mmreg.h" 1
# 11 "wine/msacm.h" 2







typedef UINT16 MMVERSION16;
typedef UINT MMVERSION;
typedef UINT16 MCIDEVICEID16;
typedef UINT MCIDEVICEID;
typedef UINT16 MMRESULT16;
typedef UINT MMRESULT;
typedef DWORD FOURCC;
# 207 "wine/msacm.h"
typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMDRIVERENUMCB)(
  HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMDRIVERENUMCB16)(
  HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFILTERCHOOSEHOOKPROCA)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFILTERCHOOSEHOOKPROCW)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFILTERCHOOSEHOOKPROC16)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFORMATCHOOSEHOOKPROCA)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT __attribute__((__stdcall__)) ( *ACMFORMATCHOOSEHOOKPROCW)(
  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);

typedef UINT16 __attribute__((__stdcall__)) ( *ACMFORMATCHOOSEHOOKPROC16)(
  HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
);





typedef struct _ACMDRIVERDETAILSA
{
  DWORD cbStruct;

  FOURCC fccType;
  FOURCC fccComp;

  WORD wMid;
  WORD wPid;

  DWORD vdwACM;
  DWORD vdwDriver;

  DWORD fdwSupport;
  DWORD cFormatTags;
  DWORD cFilterTags;

  HICON hicon;

  CHAR szShortName[32];
  CHAR szLongName[128];
  CHAR szCopyright[80];
  CHAR szLicensing[128];
  CHAR szFeatures[512];
} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;

typedef struct _ACMDRIVERDETAILSW
{
  DWORD cbStruct;

  FOURCC fccType;
  FOURCC fccComp;

  WORD wMid;
  WORD wPid;

  DWORD vdwACM;
  DWORD vdwDriver;

  DWORD fdwSupport;
  DWORD cFormatTags;
  DWORD cFilterTags;

  HICON hicon;

  WCHAR szShortName[32];
  WCHAR szLongName[128];
  WCHAR szCopyright[80];
  WCHAR szLicensing[128];
  WCHAR szFeatures[512];
} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;

typedef struct _ACMDRIVERDETAILS16
{
  DWORD cbStruct;

  FOURCC fccType;
  FOURCC fccComp;

  WORD wMid;
  WORD wPid;

  DWORD vdwACM;
  DWORD vdwDriver;

  DWORD fdwSupport;
  DWORD cFormatTags;
  DWORD cFilterTags;

  HICON16 hicon;

  CHAR szShortName[32];
  CHAR szLongName[128];
  CHAR szCopyright[80];
  CHAR szLicensing[128];
  CHAR szFeatures[512];
} ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;

typedef struct _ACMFILTERCHOOSEA
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND hwndOwner;

  PWAVEFILTER pwfltr;
  DWORD cbwfltr;

  LPCSTR pszTitle;

  CHAR szFilterTag[48];
  CHAR szFilter[128];
  LPSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  PWAVEFILTER pwfltrEnum;

  HINSTANCE hInstance;
  LPCSTR pszTemplateName;
  LPARAM lCustData;
  ACMFILTERCHOOSEHOOKPROCA pfnHook;
} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;

typedef struct _ACMFILTERCHOOSEW
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND hwndOwner;

  PWAVEFILTER pwfltr;
  DWORD cbwfltr;

  LPCWSTR pszTitle;

  WCHAR szFilterTag[48];
  WCHAR szFilter[128];
  LPWSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  PWAVEFILTER pwfltrEnum;

  HINSTANCE hInstance;
  LPCWSTR pszTemplateName;
  LPARAM lCustData;
  ACMFILTERCHOOSEHOOKPROCW pfnHook;
} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;

typedef struct _ACMFILTERCHOOSE16
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND16 hwndOwner;

  LPWAVEFILTER pwfltr;
  DWORD cbwfltr;

  LPCSTR pszTitle;

  char szFilterTag[48];
  char szFilter[128];
  LPSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  LPWAVEFILTER pwfltrEnum;

  HINSTANCE16 hInstance;
  LPCSTR pszTemplateName;
  LPARAM lCustData;
  ACMFILTERCHOOSEHOOKPROC16 pfnHook;
} ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;

typedef struct _ACMFILTERDETAILSA
{
  DWORD cbStruct;
  DWORD dwFilterIndex;
  DWORD dwFilterTag;
  DWORD fdwSupport;
  PWAVEFILTER pwfltr;
  DWORD cbwfltr;
  CHAR szFilter[128];
} ACMFILTERDETAILSA, *PACMFILTERDETAILSA;

typedef struct _ACMFILTERDETAILSW
{
  DWORD cbStruct;
  DWORD dwFilterIndex;
  DWORD dwFilterTag;
  DWORD fdwSupport;
  PWAVEFILTER pwfltr;
  DWORD cbwfltr;
  WCHAR szFilter[128];
} ACMFILTERDETAILSW, *PACMFILTERDETAILSW;

typedef struct _ACMFILTERDETAILS16
{
  DWORD cbStruct;
  DWORD dwFilterIndex;
  DWORD dwFilterTag;
  DWORD fdwSupport;
  LPWAVEFILTER pwfltr;
  DWORD cbwfltr;
  CHAR szFilter[128];
} ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;

typedef struct _ACMFILTERTAGDETAILSA
{
  DWORD cbStruct;
  DWORD dwFilterTagIndex;
  DWORD dwFilterTag;
  DWORD cbFilterSize;
  DWORD fdwSupport;
  DWORD cStandardFilters;
  CHAR szFilterTag[48];
} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;

typedef struct _ACMFILTERTAGDETAILSW
{
  DWORD cbStruct;
  DWORD dwFilterTagIndex;
  DWORD dwFilterTag;
  DWORD cbFilterSize;
  DWORD fdwSupport;
  DWORD cStandardFilters;
  WCHAR szFilterTag[48];
} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;

typedef struct _ACMFILTERTAGDETAILS16
{
  DWORD cbStruct;
  DWORD dwFilterTagIndex;
  DWORD dwFilterTag;
  DWORD cbFilterSize;
  DWORD fdwSupport;
  DWORD cStandardFilters;
  CHAR szFilterTag[48];
} ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;

typedef struct _ACMFORMATCHOOSEA
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND hwndOwner;

  PWAVEFORMATEX pwfx;
  DWORD cbwfx;
  LPCSTR pszTitle;

  CHAR szFormatTag[48];
  CHAR szFormat[128];

  LPSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  PWAVEFORMATEX pwfxEnum;

  HINSTANCE hInstance;
  LPCSTR pszTemplateName;
  LPARAM lCustData;
  ACMFORMATCHOOSEHOOKPROCA pfnHook;
} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;

typedef struct _ACMFORMATCHOOSEW
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND hwndOwner;

  PWAVEFORMATEX pwfx;
  DWORD cbwfx;
  LPCWSTR pszTitle;

  WCHAR szFormatTag[48];
  WCHAR szFormat[128];

  LPWSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  LPWAVEFORMATEX pwfxEnum;

  HINSTANCE hInstance;
  LPCWSTR pszTemplateName;
  LPARAM lCustData;
  ACMFORMATCHOOSEHOOKPROCW pfnHook;
} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;

typedef struct _ACMFORMATCHOOSE16
{
  DWORD cbStruct;
  DWORD fdwStyle;

  HWND16 hwndOwner;

  LPWAVEFORMATEX pwfx;
  DWORD cbwfx;
  LPCSTR pszTitle;

  CHAR szFormatTag[48];
  CHAR szFormat[128];

  LPSTR pszName;
  DWORD cchName;

  DWORD fdwEnum;
  LPWAVEFORMATEX pwfxEnum;

  HINSTANCE16 hInstance;
  LPCSTR pszTemplateName;
  LPARAM lCustData;
  ACMFORMATCHOOSEHOOKPROC16 pfnHook;
} ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;

typedef struct _ACMFORMATDETAILSA
{
  DWORD cbStruct;
  DWORD dwFormatIndex;
  DWORD dwFormatTag;
  DWORD fdwSupport;
  PWAVEFORMATEX pwfx;
  DWORD cbwfx;
  CHAR szFormat[128];
} ACMFORMATDETAILSA, *PACMFORMATDETAILSA;

typedef struct _ACMFORMATDETAILSW
{
    DWORD cbStruct;
    DWORD dwFormatIndex;
    DWORD dwFormatTag;
    DWORD fdwSupport;
    PWAVEFORMATEX pwfx;
    DWORD cbwfx;
    WCHAR szFormat[128];
} ACMFORMATDETAILSW, *PACMFORMATDETAILSW;

typedef struct _ACMFORMATDETAILS16
{
    DWORD cbStruct;
    DWORD dwFormatIndex;
    DWORD dwFormatTag;
    DWORD fdwSupport;
    LPWAVEFORMATEX pwfx;
    DWORD cbwfx;
    CHAR szFormat[128];
} ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;

typedef struct _ACMFORMATTAGDETAILSA
{
  DWORD cbStruct;
  DWORD dwFormatTagIndex;
  DWORD dwFormatTag;
  DWORD cbFormatSize;
  DWORD fdwSupport;
  DWORD cStandardFormats;
  CHAR szFormatTag[48];
} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;

typedef struct _ACMFORMATTAGDETAILSW
{
  DWORD cbStruct;
  DWORD dwFormatTagIndex;
  DWORD dwFormatTag;
  DWORD cbFormatSize;
  DWORD fdwSupport;
  DWORD cStandardFormats;
  WCHAR szFormatTag[48];
} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;

typedef struct _ACMFORMATTAGDETAILS16
{
  DWORD cbStruct;
  DWORD dwFormatTagIndex;
  DWORD dwFormatTag;
  DWORD cbFormatSize;
  DWORD fdwSupport;
  DWORD cStandardFormats;
  CHAR szFormatTag[48];
} ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;

typedef struct _ACMSTREAMHEADER
{
  DWORD cbStruct;
  DWORD fdwStatus;
  DWORD dwUser;
  LPBYTE pbSrc;
  DWORD cbSrcLength;
  DWORD cbSrcLengthUsed;
  DWORD dwSrcUser;
  LPBYTE pbDst;
  DWORD cbDstLength;
  DWORD cbDstLengthUsed;
  DWORD dwDstUser;
  DWORD dwReservedDriver[10];
} ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
  ACMSTREAMHEADER, *PACMSTREAMHEADER;





typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFILTERENUMCBA)(
  HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFILTERENUMCBW)(
  HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMFILTERENUMCB16)(
 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
 DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFILTERTAGENUMCBA)(
  HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFILTERTAGENUMCBW)(
  HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMFILTERTAGENUMCB16)(
  HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFORMATENUMCBA)(
  HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFORMATENUMCBW)(
  HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMFORMATENUMCB16)(
  HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFORMATTAGENUMCBA)(
  HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL __attribute__((__stdcall__)) ( *ACMFORMATTAGENUMCBW)(
  HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
  DWORD dwInstance, DWORD fdwSupport
);

typedef WIN_BOOL16 __attribute__((__stdcall__)) ( *ACMFORMATTAGENUMCB16)(
  HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
  DWORD dwInstance, DWORD fdwSupport
);





DWORD __attribute__((__stdcall__)) acmGetVersion16(
);
MMRESULT16 __attribute__((__stdcall__)) acmMetrics16(
  HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverEnum16(
  ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverDetails16(
  HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverAdd16(
  LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverRemove16(
  HACMDRIVERID16 hadid, DWORD fdwRemove
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverOpen16(
  LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverClose16(
  HACMDRIVER16 had, DWORD fdwClose
);
LRESULT __attribute__((__stdcall__)) acmDriverMessage16(
  HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverID16(
  HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
);
MMRESULT16 __attribute__((__stdcall__)) acmDriverPriority16(
 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatTagDetails16(
  HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatTagEnum16(
  HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
  ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatChoose16(
  LPACMFORMATCHOOSE16 pafmtc
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatDetails16(
  HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatEnum16(
  HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
  ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmFormatSuggest16(
  HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
  LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterTagDetails16(
  HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterTagEnum16(
  HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
  ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterChoose16(
  LPACMFILTERCHOOSE16 pafltrc
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterDetails16(
  HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
);
MMRESULT16 __attribute__((__stdcall__)) acmFilterEnum16(
  HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
  ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamOpen16(
  LPHACMSTREAM16 phas, HACMDRIVER16 had,
  LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
  LPWAVEFILTER pwfltr, DWORD dwCallback,
  DWORD dwInstance, DWORD fdwOpen
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamClose16(
  HACMSTREAM16 has, DWORD fdwClose
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamSize16(
  HACMSTREAM16 has, DWORD cbInput,
  LPDWORD pdwOutputBytes, DWORD fdwSize
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamConvert16(
  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamReset16(
  HACMSTREAM16 has, DWORD fdwReset
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamPrepareHeader16(
  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
);
MMRESULT16 __attribute__((__stdcall__)) acmStreamUnprepareHeader16(
  HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
);





MMRESULT __attribute__((__stdcall__)) acmDriverAddA(
  PHACMDRIVERID phadid, HINSTANCE hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT __attribute__((__stdcall__)) acmDriverAddW(
  PHACMDRIVERID phadid, HINSTANCE hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT __attribute__((__stdcall__)) acmDriverClose(
  HACMDRIVER had, DWORD fdwClose
);
MMRESULT __attribute__((__stdcall__)) acmDriverDetailsA(
  HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmDriverDetailsW(
  HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmDriverEnum(
  ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmDriverID(
  HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
);
LRESULT __attribute__((__stdcall__)) acmDriverMessage(
  HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT __attribute__((__stdcall__)) acmDriverOpen(
  PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
);
MMRESULT __attribute__((__stdcall__)) acmDriverPriority(
  HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
);
MMRESULT __attribute__((__stdcall__)) acmDriverRemove(
  HACMDRIVERID hadid, DWORD fdwRemove
);
MMRESULT __attribute__((__stdcall__)) acmFilterChooseA(
  PACMFILTERCHOOSEA pafltrc
);
MMRESULT __attribute__((__stdcall__)) acmFilterChooseW(
  PACMFILTERCHOOSEW pafltrc
);
MMRESULT __attribute__((__stdcall__)) acmFilterDetailsA(
  HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterDetailsW(
  HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterEnumA(
  HACMDRIVER had, PACMFILTERDETAILSA pafd,
  ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterEnumW(
  HACMDRIVER had, PACMFILTERDETAILSW pafd,
  ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagDetailsA(
  HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagDetailsW(
  HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagEnumA(
  HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
  ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagEnumW(
  HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
  ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatChooseA(
  PACMFORMATCHOOSEA pafmtc
);
MMRESULT __attribute__((__stdcall__)) acmFormatChooseW(
  PACMFORMATCHOOSEW pafmtc
);
MMRESULT __attribute__((__stdcall__)) acmFormatDetailsA(
  HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatDetailsW(
  HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatEnumA(
  HACMDRIVER had, PACMFORMATDETAILSA pafd,
  ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatEnumW(
  HACMDRIVER had, PACMFORMATDETAILSW pafd,
  ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatSuggest(
  HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
  DWORD cbwfxDst, DWORD fdwSuggest
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagDetailsA(
  HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagDetailsW(
  HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagEnumA(
  HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
  ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagEnumW(
  HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
  ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
DWORD __attribute__((__stdcall__)) acmGetVersion(
);
MMRESULT __attribute__((__stdcall__)) acmMetrics(
  HACMOBJ hao, UINT uMetric, LPVOID pMetric
);
MMRESULT __attribute__((__stdcall__)) acmStreamClose(
  HACMSTREAM has, DWORD fdwClose
);
MMRESULT __attribute__((__stdcall__)) acmStreamConvert(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
);
MMRESULT __attribute__((__stdcall__)) acmStreamMessage(
  HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT __attribute__((__stdcall__)) acmStreamOpen(
  PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
  PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
  DWORD dwInstance, DWORD fdwOpen
);
MMRESULT __attribute__((__stdcall__)) acmStreamPrepareHeader(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
);
MMRESULT __attribute__((__stdcall__)) acmStreamReset(
  HACMSTREAM has, DWORD fdwReset
);
MMRESULT __attribute__((__stdcall__)) acmStreamSize(
  HACMSTREAM has, DWORD cbInput,
  LPDWORD pdwOutputBytes, DWORD fdwSize
);
MMRESULT __attribute__((__stdcall__)) acmStreamUnprepareHeader(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
);
void MSACM_RegisterAllDrivers(void);
# 16 "loader.h" 2




extern char* win32_codec_name;

unsigned int _GetPrivateProfileIntA(const char* appname, const char* keyname, int default_value, const char* filename);
int _GetPrivateProfileStringA(const char* appname, const char* keyname,
        const char* def_val, char* dest, unsigned int len, const char* filename);
int _WritePrivateProfileStringA(const char* appname, const char* keyname,
        const char* string, const char* filename);
# 35 "loader.h"
long ICCompress(
        HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData,
        LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid,
        long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality,
        LPBITMAPINFOHEADER lpbiPrev,void* lpPrev
);

long ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);

WIN_BOOL ICInfo(long fccType, long fccHandler, ICINFO * lpicinfo);
LRESULT ICGetInfo(HIC hic,ICINFO *picinfo, long cb);
HIC ICOpen(long fccType, long fccHandler, UINT wMode);
HIC ICOpenFunction(long fccType, long fccHandler, unsigned int wMode, void* lpfnHandler);

LRESULT ICClose(HIC hic);
LRESULT ICSendMessage(HIC hic, unsigned int msg, long dw1, long dw2);
HIC ICLocate(long fccType, long fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, short wFlags);

int ICDoSomething();
# 142 "loader.h"
MMRESULT __attribute__((__stdcall__)) acmDriverAddA(
  PHACMDRIVERID phadid, HINSTANCE hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT __attribute__((__stdcall__)) acmDriverAddW(
  PHACMDRIVERID phadid, HINSTANCE hinstModule,
  LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
);
MMRESULT __attribute__((__stdcall__)) acmDriverClose(
  HACMDRIVER had, DWORD fdwClose
);
MMRESULT __attribute__((__stdcall__)) acmDriverDetailsA(
  HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmDriverDetailsW(
  HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmDriverEnum(
  ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmDriverID(
  HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
);
LRESULT __attribute__((__stdcall__)) acmDriverMessage(
  HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT __attribute__((__stdcall__)) acmDriverOpen(
  PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
);
MMRESULT __attribute__((__stdcall__)) acmDriverPriority(
  HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
);
MMRESULT __attribute__((__stdcall__)) acmDriverRemove(
  HACMDRIVERID hadid, DWORD fdwRemove
);
MMRESULT __attribute__((__stdcall__)) acmFilterChooseA(
  PACMFILTERCHOOSEA pafltrc
);
MMRESULT __attribute__((__stdcall__)) acmFilterChooseW(
  PACMFILTERCHOOSEW pafltrc
);
MMRESULT __attribute__((__stdcall__)) acmFilterDetailsA(
  HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterDetailsW(
  HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterEnumA(
  HACMDRIVER had, PACMFILTERDETAILSA pafd,
  ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterEnumW(
  HACMDRIVER had, PACMFILTERDETAILSW pafd,
  ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagDetailsA(
  HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagDetailsW(
  HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagEnumA(
  HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
  ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFilterTagEnumW(
  HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
  ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatChooseA(
  PACMFORMATCHOOSEA pafmtc
);
MMRESULT __attribute__((__stdcall__)) acmFormatChooseW(
  PACMFORMATCHOOSEW pafmtc
);
MMRESULT __attribute__((__stdcall__)) acmFormatDetailsA(
  HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatDetailsW(
  HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatEnumA(
  HACMDRIVER had, PACMFORMATDETAILSA pafd,
  ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatEnumW(
  HACMDRIVER had, PACMFORMATDETAILSW pafd,
  ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatSuggest(
  HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
  DWORD cbwfxDst, DWORD fdwSuggest
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagDetailsA(
  HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagDetailsW(
  HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagEnumA(
  HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
  ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
);
MMRESULT __attribute__((__stdcall__)) acmFormatTagEnumW(
  HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
  ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
);
DWORD __attribute__((__stdcall__)) acmGetVersion(
);
MMRESULT __attribute__((__stdcall__)) acmMetrics(
  HACMOBJ hao, UINT uMetric, LPVOID pMetric
);
MMRESULT __attribute__((__stdcall__)) acmStreamClose(
  HACMSTREAM has, DWORD fdwClose
);
MMRESULT __attribute__((__stdcall__)) acmStreamConvert(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
);
MMRESULT __attribute__((__stdcall__)) acmStreamMessage(
  HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
);
MMRESULT __attribute__((__stdcall__)) acmStreamOpen(
  PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
  PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
  DWORD dwInstance, DWORD fdwOpen
);
MMRESULT __attribute__((__stdcall__)) acmStreamPrepareHeader(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
);
MMRESULT __attribute__((__stdcall__)) acmStreamReset(
  HACMSTREAM has, DWORD fdwReset
);
MMRESULT __attribute__((__stdcall__)) acmStreamSize(
  HACMSTREAM has, DWORD cbInput,
  LPDWORD pdwOutputBytes, DWORD fdwSize
);
MMRESULT __attribute__((__stdcall__)) acmStreamUnprepareHeader(
  HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
);
void MSACM_RegisterAllDrivers(void);

INT __attribute__((__stdcall__)) LoadStringA( HINSTANCE instance, UINT resource_id,
                            LPSTR buffer, INT buflen );
# 44 "win32.c" 2
# 1 "com.h" 1
# 45 "win32.c" 2

long RegEnumValueA(HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count,
                   LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count);

char* def_path="/usr/lib/win32";

static void do_cpuid(unsigned int ax, unsigned int *regs)
{
    __asm__ __volatile__(
        "pushl %%ebx; pushl %%ecx; pushl %%edx; "
        ".byte  0x0f, 0xa2;"
        "movl   %%eax, (%2);"
        "movl   %%ebx, 4(%2);"
        "movl   %%ecx, 8(%2);"
        "movl   %%edx, 12(%2);"
        "popl %%edx; popl %%ecx; popl %%ebx; "
        : "=a" (ax)
    : "0" (ax), "S" (regs));
}
static unsigned int c_localcount_tsc()
{
    int a;
    __asm__ __volatile__("rdtsc\n\t"
    :"=a"(a)
    :
    :"edx");
    return a;
}
static void c_longcount_tsc(long long* z)
{
    __asm__ __volatile__(
    "pushl %%ebx\n\t"
    "movl %%eax, %%ebx\n\t"
    "rdtsc\n\t"
    "movl %%eax, 0(%%ebx)\n\t"
    "movl %%edx, 4(%%ebx)\n\t"
    "popl %%ebx\n\t"
    ::"a"(z));
}
static unsigned int c_localcount_notsc()
{
    struct timeval tv;
    unsigned limit=~0;
    limit/=1000000;
    gettimeofday(&tv, 0);
    return limit*tv.tv_usec;
}
static void c_longcount_notsc(long long* z)
{
    struct timeval tv;
    unsigned long long result;
    unsigned limit=~0;
    if(!z)return;
    limit/=1000000;
    gettimeofday(&tv, 0);
    result=tv.tv_sec;
    result<<=32;
    result+=limit*tv.tv_usec;
    *z=result;
}

static unsigned int localcount_stub(void);
static void longcount_stub(long long* z);
static unsigned int (*localcount)()=localcount_stub;
static void (*longcount)(long long*)=longcount_stub;

static unsigned int localcount_stub(void)
{
    unsigned int regs[4];
    do_cpuid(1, regs);
    if ((regs[3] & 0x00000010) != 0)
    {
        localcount=c_localcount_tsc;
        longcount=c_longcount_tsc;
    }
    else
    {
        localcount=c_localcount_notsc;
        longcount=c_longcount_notsc;
    }
    return localcount();
}
static void longcount_stub(long long* z)
{
    unsigned int regs[4];
    do_cpuid(1, regs);
    if ((regs[3] & 0x00000010) != 0)
    {
        localcount=c_localcount_tsc;
        longcount=c_longcount_tsc;
    }
    else
    {
        localcount=c_localcount_notsc;
        longcount=c_longcount_notsc;
    }
    longcount(z);
}

int LOADER_DEBUG=1;
static inline void dbgprintf(char* fmt, ...)
{
# 164 "win32.c"
}
char export_names[500][30]={
"name1",


};


static unsigned char* heap=((void *)0);
static int heap_counter=0;
static void test_heap()
{
    int offset=0;
    if(heap==0)
        return;
    while(offset<heap_counter)
    {
        if(*(int*)(heap+offset)!=0x433476)
        {
            printf("Heap corruption at address %d\n", offset);
            return;
        }
        offset+=8+*(int*)(heap+offset+4);
    }
    for(;offset<(((offset+1000) < (20000000)) ? (offset+1000) : (20000000)); offset++)
        if(heap[offset]!=0xCC)
            {
                printf("Free heap corruption at address %d\n", offset);
        }
}
# 252 "win32.c"
struct alc_list_t;
typedef struct alc_list_t {
  int size;
  void *addr;
  struct alc_list_t *prev;
  struct alc_list_t *next;
}alc_list;
static alc_list *alclist=((void *)0);
static int alccnt=0;


void* my_mreq(int size, int to_zero)
{
    void* answer;
    if(to_zero)
        answer=calloc(size+4, 1);
    else
        answer=malloc(size+4);
    *(int*)answer=size;

    if (alclist==((void *)0)) {
      alclist=malloc(sizeof(alc_list));
      alclist->prev=alclist->next=((void *)0);
    }
    else {
      alclist->next=malloc(sizeof(alc_list));
      alclist->next->prev=alclist;
      alclist->next->next=((void *)0);
      alclist=alclist->next;
    }
    alclist->size=size;
    alclist->addr=answer;
    alccnt++;

    return (int*)((int)answer+sizeof(int));
}
int my_release(void* memory)
{

    alc_list* pp;
    if(memory==0)return 0;
    if(alclist!=((void *)0))
    {
        pp=alclist;
        if ((pp->prev==((void *)0)) && (pp->next == ((void *)0))){
           free(pp);
           alclist=((void *)0);
        }
        else {
                for(;pp;pp=pp->prev) {
                        if (pp->addr == memory-4) {
                                if (pp->prev)
                                        pp->prev->next=pp->next;
                                if (pp->next)
                                        pp->next->prev=pp->prev;
                                if (pp == alclist)
                                        alclist=pp->prev;
                                free(pp);
                                alccnt--;
                                break;
                        }
                }
                if (pp == ((void *)0)) {
                        printf("Not Found %p %d\n",memory-4,alccnt);
                        return 0;
                }
        }
    }

    free(memory-4);
    return 0;
}

int my_size(char* memory)
{
    return *(int*)(memory-4);
}

extern int unk_exp1;
char extcode[20000];
int pos=0;

int __attribute__((__stdcall__)) ext_unknown(void)
{
    printf("Unknown func called\n");
    return 0;
}
int __attribute__((__stdcall__)) expIsBadWritePtr(void* ptr, unsigned int count)
{
    int result;
    if(count==0)
        result=0;
    else
    if(ptr==0)
        result=1;
    else
        result=0;
    dbgprintf("IsBadWritePtr(0x%x, 0x%x) => %d\n", ptr, count, result);
    return result;
}
int __attribute__((__stdcall__)) expIsBadReadPtr(void* ptr, unsigned int count)
{
    int result;
    if(count==0)
        result=0;
    else
    if(ptr==0)
        result=1;
    else
        result=0;
    dbgprintf("IsBadReadPtr(0x%x, 0x%x) => %d\n", ptr, count, result);
    return result;
}
void* __attribute__((__cdecl__)) expmalloc(int size)
{


    void* result=my_mreq(size,0);
    dbgprintf("malloc(0x%x) => 0x%x\n", size,result);
    if(result==0)
        printf("WARNING: malloc() failed\n");
    return result;
}
void __attribute__((__cdecl__)) expfree(void* mem)
{

    dbgprintf("free(0x%x)\n", mem);
    my_release(mem);
}
void* __attribute__((__cdecl__)) expnew(int size)
{




    void* result=my_mreq(size,0);
    dbgprintf("new(0x%x) => 0x%x\n", size, result);
    if(result==0)
        printf("WARNING: new() failed\n");
    return result;

}
int __attribute__((__cdecl__)) expdelete(void* memory)
{
    dbgprintf("delete(0x%x)\n", memory);
    my_release(memory);
    return 0;
}
int __attribute__((__stdcall__)) expDisableThreadLibraryCalls(int module)
{
    dbgprintf("DisableThreadLibraryCalls(0x%x) => 0\n", module);
    return 0;
}
int __attribute__((__cdecl__)) exp_initterm(int v1, int v2)
{
    dbgprintf("_initterm(0x%x, 0x%x) => 0\n", v1, v2);
    return 0;
}

void* __attribute__((__stdcall__)) expGetDriverModuleHandle(DRVR* pdrv)
{
    void* result;
    if (pdrv==((void *)0))
        result=((void *)0);
    else
        result=(void*) pdrv->hDriverModule;
    dbgprintf("GetDriverModuleHandle(0x%x) => 0x%x\n", pdrv, result);
    return result;
}

void* __attribute__((__stdcall__)) expGetModuleHandleA(const char* name)
{
        WINE_MODREF* wm;
        void* result;
        if(!name)
            result=0;
        else
        {
            wm=MODULE_FindModule(name);
                if(wm==0)result=0;
            else
                result=(void*)(wm->module);
        }
        if(!result)
        {
            if(strcasecmp(name, "kernel32")==0)
                result=(void *) 0x120;
        }
         dbgprintf("GetModuleHandleA('%s') => 0x%x\n", name, result);
        return result;
}

struct th_list_t;
typedef struct th_list_t{
int id;
void* thread;
struct th_list_t* next;
struct th_list_t* prev;
}th_list;

static th_list* list=((void *)0);



void* __attribute__((__stdcall__)) expCreateThread(void* pSecAttr, long dwStackSize, void* lpStartAddress,
        void* lpParameter, long dwFlags, long* dwThreadId)
{
    pthread_t *pth;

    pth=my_mreq(sizeof(pthread_t), 0);
    pthread_create(pth, ((void *)0), (void*(*)(void*))lpStartAddress, lpParameter);
    if(dwFlags)
        printf( "WARNING: CreateThread flags not supported\n");
    if(dwThreadId)
        *dwThreadId=(long)pth;
    if(list==((void *)0))
    {
        list=my_mreq(sizeof(th_list), 1);
        list->next=list->prev=((void *)0);
    }
    else
    {
        list->next=my_mreq(sizeof(th_list), 0);
        list->next->prev=list;
        list->next->next=((void *)0);
        list=list->next;
    }
    list->thread=pth;
    dbgprintf("CreateThread(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x) => 0x%x\n",
        pSecAttr, dwStackSize, lpStartAddress, lpParameter, dwFlags, dwThreadId, pth);
    return pth;
}

struct mutex_list_t;

struct mutex_list_t
{
    char type;
    pthread_mutex_t *pm;
    pthread_cond_t *pc;
    char state;
    char reset;
    char name[64];
    int semaphore;
    struct mutex_list_t* next;
    struct mutex_list_t* prev;
};
typedef struct mutex_list_t mutex_list;
static mutex_list* mlist=((void *)0);
void* __attribute__((__stdcall__)) expCreateEventA(void* pSecAttr, char bManualReset,
    char bInitialState, const char* name)
{
    pthread_mutex_t *pm;
    pthread_cond_t *pc;
    if(mlist!=((void *)0))
    {
        mutex_list* pp=mlist;
        if(name!=((void *)0))
        do
        {
            if((__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (pp->name) && __builtin_constant_p (name) && (__s1_len = strlen (pp->name), __s2_len = strlen (name), (!((size_t)(const void *)((pp->name) + 1) - (size_t)(const void *)(pp-
>How-To-Repeat:
	
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:
 >name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (pp->name), (__const char *) (name), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_ constant_p (pp->name) && ((size_t)(const void *)((pp->name) + 1) - (size_t)(const void *)(pp->name) == 1) && (__s1_len = strlen (pp->name), __s1_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name)  == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (pp->name))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const  char *) (pp->name))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (pp->name))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (_ _s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (pp->name))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *)  (__const char *) (name); register int __result = (((__const unsigned char *) (__const char *) (pp->name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (pp->name))[1] - __s2[1]); if (__s1_len  > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (pp->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (pp->name))[3] - __s2[3]); } } __result; }))) : (__built in_cons!
 tant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s2_len = strlen (name), __s2_len < 4) ? (__builtin_constant_p (pp->name) && ((size_t)(const void *)((pp->name) + 1) - (size_t)(const void *)(pp->name) == 1) ?  (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (pp->name))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *)  (pp->name))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (pp->name))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len  > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (pp->name))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const  char *) (pp->name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __resul t == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; }))) : strcmp (pp->name, name)))); }) ==0) && (pp->type==0))
             {
                 dbgprintf("CreateEventA(0x%x, 0x%x, 0x%x, 0x%x='%s') => 0x%x\n",
                     pSecAttr, bManualReset, bInitialState, name, name, pp->pm);
                 return pp->pm;
             }
         }while((pp=pp->prev));
     }
     pm=my_mreq(sizeof(pthread_mutex_t), 0);
     pthread_mutex_init(pm, ((void *)0));
     pc=my_mreq(sizeof(pthread_cond_t), 0);
     pthread_cond_init(pc, ((void *)0));
     if(mlist==((void *)0))
     {
         mlist=my_mreq(sizeof(mutex_list), 00);
         mlist->next=mlist->prev=((void *)0);
     }
     else
     {
         mlist->next=my_mreq(sizeof(mutex_list), 00);
         mlist->next->prev=mlist;
         mlist->next->next=((void *)0);
         mlist=mlist->next;
     }
     mlist->type=0;
     mlist->pm=pm;
     mlist->pc=pc;
     mlist->state=bInitialState;
     mlist->reset=bManualReset;
     if(name!=((void *)0))
         (__extension__ (__builtin_constant_p (name) && __builtin_constant_p (64) ? (strlen (name) + 1 >= ((size_t) (64)) ? (char *) memcpy (mlist->name, name, 64) : strncpy (mlist->name, name, 64)) : strncpy (mlist->name, name, 64)));
         else
         mlist->name[0]=0;
     if(pm==((void *)0))
         dbgprintf("ERROR::: CreateEventA failure\n");
 
 
 
 
     if(name)
     dbgprintf("CreateEventA(0x%x, 0x%x, 0x%x, 0x%x='%s') => 0x%x\n",
         pSecAttr, bManualReset, bInitialState, name, name, mlist);
     else
     dbgprintf("CreateEventA(0x%x, 0x%x, 0x%x, NULL) => 0x%x\n",
         pSecAttr, bManualReset, bInitialState, mlist);
     return mlist;
 }
 
 void* __attribute__((__stdcall__)) expSetEvent(void* event)
 {
     mutex_list *ml = (mutex_list *)event;
     dbgprintf("SetEvent(%x) => 0x1\n", event);
     pthread_mutex_lock(ml->pm);
     if (ml->state == 0) {
         ml->state = 1;
         pthread_cond_signal(ml->pc);
     }
     pthread_mutex_unlock(ml->pm);
 
     return (void *)1;
 }
 void* __attribute__((__stdcall__)) expResetEvent(void* event)
 {
     mutex_list *ml = (mutex_list *)event;
     dbgprintf("ResetEvent(0x%x) => 0x1\n", event);
     pthread_mutex_lock(ml->pm);
     ml->state = 0;
     pthread_mutex_unlock(ml->pm);
 
     return (void *)1;
 }
 
 void* __attribute__((__stdcall__)) expWaitForSingleObject(void* object, int duration)
 {
     mutex_list *ml = (mutex_list *)object;
     int ret=0xffffffff;
     mutex_list* pp=mlist;
 
 
 
     if (!ml)
         return (void*) ret;
     while (pp && (pp->pm != ml->pm))
         pp = pp->prev;
     if (!pp) {
 
         return (void*)ret;
     }
 
     pthread_mutex_lock(ml->pm);
 
     switch(ml->type) {
       case 0:
         if (duration == 0) {
                 if (ml->state == 1) ret = 0xffffffff;
                 else ret = 0;
         }
         if (duration == -1) {
                 if (ml->state == 0)
                         pthread_cond_wait(ml->pc,ml->pm);
                 if (ml->reset)
                         ml->state = 0;
                 ret = 0;
         }
         if (duration > 0) {
                 struct timespec abstime;
                 struct timeval now;
                 gettimeofday(&now, 0);
                 abstime.tv_sec = now.tv_sec + (now.tv_usec+duration)/1000000;
                 abstime.tv_nsec = ((now.tv_usec+duration)%1000000)*1000;
                 if (ml->state == 0)
                         ret=pthread_cond_timedwait(ml->pc,ml->pm,&abstime);
                 if (ret == 110) ret = 0x00000102;
                 else ret = 0;
                 if (ml->reset)
                         ml->state = 0;
         }
         break;
       case 1:
         if (duration == 0) {
                 if(ml->semaphore==0) ret = 0xffffffff;
                 else {
                         ml->semaphore++;
                         ret = 0;
                 }
         }
         if (duration == -1) {
                 if (ml->semaphore==0)
                         pthread_cond_wait(ml->pc,ml->pm);
                 ml->semaphore--;
         }
         break;
     }
     pthread_mutex_unlock(ml->pm);
 
     dbgprintf("WaitForSingleObject(0x%x, %d): 0x%x => 0x%x \n",object,duration,ml,ret);
     return (void *)ret;
 }
 
 static BYTE PF[64] = {0,};
 
 WIN_BOOL __attribute__((__stdcall__)) expIsProcessorFeaturePresent(DWORD v)
 {
     WIN_BOOL result;
     if(v>63)result=0;
     else result=PF[v];
     dbgprintf("IsProcessorFeaturePresent(0x%x) => 0x%x\n", v, result);
     return result;
 }
 
 static void DumpSystemInfo(const SYSTEM_INFO* si)
 {
     dbgprintf("  Processor architecture %d\n", si->u.s.wProcessorArchitecture);
     dbgprintf("  Page size: %d\n", si->dwPageSize);
     dbgprintf("  Minimum app address: %d\n", si->lpMinimumApplicationAddress);
     dbgprintf("  Maximum app address: %d\n", si->lpMaximumApplicationAddress);
     dbgprintf("  Active processor mask: 0x%x\n", si->dwActiveProcessorMask);
     dbgprintf("  Number of processors: %d\n", si->dwNumberOfProcessors);
     dbgprintf("  Processor type: 0x%x\n", si->dwProcessorType);
     dbgprintf("  Allocation granularity: 0x%x\n", si->dwAllocationGranularity);
     dbgprintf("  Processor level: 0x%x\n", si->wProcessorLevel);
     dbgprintf("  Processor revision: 0x%x\n", si->wProcessorRevision);
 }
 
 void __attribute__((__stdcall__)) expGetSystemInfo(SYSTEM_INFO* si)
 {
 
         static int cache = 0;
         static SYSTEM_INFO cachedsi;
         unsigned int regs[4];
         HKEY xhkey=0,hkey;
         dbgprintf("GetSystemInfo(0x%d) =>\n");
 
         if (cache) {
                 memcpy(si,&cachedsi,sizeof(*si));
                 DumpSystemInfo(si);
                 return;
         }
         (__extension__ (__builtin_constant_p (sizeof(PF)) && (sizeof(PF)) <= 16 ? ((sizeof(PF)) == 1 ? ({ void *__s = (PF); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (PF); union { unsigned int __ui; unsigned short int __usi; unsigned  char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (sizeof(PF))) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)(( char *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ (void *)((char *) __u + 2); __u->__uc = (unsigned char) __c; break; case 1 4: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4);  case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 5: __u->__ui  = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __exte nsion__ (void *)((char *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (PF); __ builtin_memset (__s, '\0', sizeof(PF)); __s; }) : memset (PF, 0, sizeof(PF)))));
 
         cachedsi.u.s.wProcessorArchitecture = 0;
         cachedsi.dwPageSize = getpagesize();
 
 
         cachedsi.lpMinimumApplicationAddress = (void *)0x00000000;
         cachedsi.lpMaximumApplicationAddress = (void *)0x7FFFFFFF;
         cachedsi.dwActiveProcessorMask = 1;
         cachedsi.dwNumberOfProcessors = 1;
         cachedsi.dwProcessorType = 386;
         cachedsi.dwAllocationGranularity = 0x10000;
         cachedsi.wProcessorLevel = 5;
         cachedsi.wProcessorRevision = 0x0101;
 # 731 "win32.c"
         {
         char buf[20];
         char line[200];
         FILE *f = fopen ("/proc/cpuinfo", "r");
 
         if (!f)
                 return;
         xhkey = 0;
         while (fgets(line,200,f)!=((void *)0)) {
                 char *s,*value;
 
 
                 if (!(value = (__extension__ (__builtin_constant_p (':') && (':') == '\0' ? (char *) __rawmemchr (line, ':') : strchr (line, ':')))))
                         continue;
 
                 *value++ = '\0';
 
                 while (*value==' ') value++;
                 if ((s=(__extension__ (__builtin_constant_p ('\n') && ('\n') == '\0' ? (char *) __rawmemchr (value, '\n') : strchr (value, '\n')))))
                         *s='\0';
 
 
                 if (!strncasecmp(line, "cpu family",strlen("cpu family"))) {
                         if ((__ctype_b[(int) ((value[0]))] & (unsigned short int) _ISdigit)) {
                                 switch (value[0] - '0') {
                                 case 3: cachedsi.dwProcessorType = 386;
                                         cachedsi.wProcessorLevel= 3;
                                         break;
                                 case 4: cachedsi.dwProcessorType = 486;
                                         cachedsi.wProcessorLevel= 4;
                                         break;
                                 case 5: cachedsi.dwProcessorType = 586;
                                         cachedsi.wProcessorLevel= 5;
                                         break;
                                 case 6: cachedsi.dwProcessorType = 586;
                                         cachedsi.wProcessorLevel= 5;
                                         break;
                                 default:cachedsi.dwProcessorType = 586;
                                         cachedsi.wProcessorLevel= 5;
                                         break;
                                 }
                         }
 
                         snprintf(buf,20,"CPU %ld",cachedsi.dwProcessorType);
                         continue;
                 }
 
                 if (!strncasecmp(line, "cpu",strlen("cpu"))) {
                         if ( (__ctype_b[(int) ((value[0]))] & (unsigned short int) _ISdigit) && value[1] == '8' &&
                                 value[2] == '6' && value[3] == 0
                         ) {
                                 switch (value[0] - '0') {
                                 case 3: cachedsi.dwProcessorType = 386;
                                         cachedsi.wProcessorLevel= 3;
                                         break;
                                 case 4: cachedsi.dwProcessorType = 486;
                                         cachedsi.wProcessorLevel= 4;
                                         break;
                                 case 5: cachedsi.dwProcessorType = 586;
                                         cachedsi.wProcessorLevel= 5;
                                         break;
                                 case 6: cachedsi.dwProcessorType = 586;
                                         cachedsi.wProcessorLevel= 5;
                                         break;
                                 default:cachedsi.dwProcessorType = 586;
                                         cachedsi.wProcessorLevel= 5;
                                         break;
                                 }
                         }
 
                         snprintf(buf,20,"CPU %ld",cachedsi.dwProcessorType);
                         continue;
                 }
                 if (!strncasecmp(line,"fdiv_bug",strlen("fdiv_bug"))) {
                         if (!strncasecmp(value,"yes",3))
                                 PF[0] = 1;
 
                         continue;
                 }
                 if (!strncasecmp(line,"fpu",strlen("fpu"))) {
                         if (!strncasecmp(value,"no",2))
                                 PF[1] = 1;
 
                         continue;
                 }
                 if (!strncasecmp(line,"processor",strlen("processor"))) {
 
                         int x;
 
                         if (sscanf(value,"%d",&x))
                                 if (x+1>cachedsi.dwNumberOfProcessors)
                                         cachedsi.dwNumberOfProcessors=x+1;
 
 
 
 
                         snprintf(buf,20,"%d",x);
                 }
                 if (!strncasecmp(line,"stepping",strlen("stepping"))) {
                         int x;
 
                         if (sscanf(value,"%d",&x))
                                 cachedsi.wProcessorRevision = x;
                 }
                 if
                 ( (!strncasecmp(line,"flags",strlen("flags")))
                 || (!strncasecmp(line,"features",strlen("features"))) )
                 {
                         if (strstr(value,"cx8"))
                                 PF[2] = 1;
                         if (strstr(value,"mmx"))
                                 PF[3] = 1;
 
                 }
         }
         fclose (f);
 
 
 
 
 
 
         cachedsi.dwNumberOfProcessors=1;
         }
 
         memcpy(si,&cachedsi,sizeof(*si));
         DumpSystemInfo(si);
 }
 
 long __attribute__((__stdcall__)) expGetVersion()
 {
     dbgprintf("GetVersion() => 0xC0000004\n");
     return 0xC0000004;
 }
 
 HANDLE __attribute__((__stdcall__)) expHeapCreate(long flags, long init_size, long max_size)
 {
 
     HANDLE result;
     if(init_size==0)
         result=(HANDLE)my_mreq(0x110000, 0);
     else
         result=(HANDLE)my_mreq(init_size, 0);
     dbgprintf("HeapCreate(flags 0x%x, initial size %d, maximum size %d) => 0x%x\n", flags, init_size, max_size, result);
     return result;
 }
 void* __attribute__((__stdcall__)) expHeapAlloc(HANDLE heap, int flags, int size)
 {
     void* z;
 
 
 
 
 
     z=my_mreq(((size+4095)/4096)*4096, flags&8);
 
     if(z==0)
         printf("HeapAlloc failure\n");
     dbgprintf("HeapAlloc(heap 0x%x, flags 0x%x, size 0x%x) => 0x%x\n", heap, flags, size, z);
     return z;
 }
 long __attribute__((__stdcall__)) expHeapDestroy(void* heap)
 {
     dbgprintf("HeapDestroy(heap 0x%x) => 1\n", heap);
     my_release(heap);
     return 1;
 }
 
 long __attribute__((__stdcall__)) expHeapFree(int arg1, int arg2, void* ptr)
 {
     dbgprintf("HeapFree(0x%x, 0x%x, pointer 0x%x) => 1\n", arg1, arg2, ptr);
     my_release(ptr);
     return 1;
 }
 long __attribute__((__stdcall__)) expHeapSize(int heap, int flags, void* pointer)
 {
     long result=my_size(pointer);
     dbgprintf("HeapSize(heap 0x%x, flags 0x%x, pointer 0x%x) => %d\n", heap, flags, pointer, result);
     return result;
 }
 long __attribute__((__stdcall__)) expGetProcessHeap(void)
 {
     dbgprintf("GetProcessHeap() => 1\n");
     return 1;
 }
 void* __attribute__((__stdcall__)) expVirtualAlloc(void* v1, long v2, long v3, long v4)
 {
     void* z;
     z=VirtualAlloc(v1, v2, v3, v4);
     if(z==0)
         printf("VirtualAlloc failure\n");
     dbgprintf("VirtualAlloc(0x%x, %d, %d, %d) => 0x%x \n",v1,v2,v3,v4, z);
     return z;
 }
 int __attribute__((__stdcall__)) expVirtualFree(void* v1, int v2, int v3)
 {
     int result=VirtualFree(v1,v2,v3);
     dbgprintf("VirtualFree(0x%x, %d, %d) => %d\n",v1,v2,v3, result);
     return result;
 }
 struct CRITSECT
 {
     pthread_t id;
     pthread_mutex_t mutex;
     int locked;
 };
 void __attribute__((__stdcall__)) expInitializeCriticalSection(CRITICAL_SECTION* c)
 {
     struct CRITSECT cs;
     dbgprintf("InitializeCriticalSection(0x%x)\n", c);
 
 
 
 
 
 
 
     pthread_mutex_init(&cs.mutex, ((void *)0));
     cs.locked=0;
     *(void**)c=malloc(sizeof cs);
     memcpy(*(void**)c, &cs, sizeof cs);
     return;
 }
 void __attribute__((__stdcall__)) expEnterCriticalSection(CRITICAL_SECTION* c)
 {
     struct CRITSECT* cs=*(struct CRITSECT**)c;
     dbgprintf("EnterCriticalSection(0x%x)\n",c);
 
     if(cs->locked)
         if(cs->id==pthread_self())
             return;
     pthread_mutex_lock(&(cs->mutex));
     cs->locked=1;
     cs->id=pthread_self();
     return;
 }
 void __attribute__((__stdcall__)) expLeaveCriticalSection(CRITICAL_SECTION* c)
 {
     struct CRITSECT* cs=*(struct CRITSECT**)c;
 
     dbgprintf("LeaveCriticalSection(0x%x)\n",c);
     cs->locked=0;
     pthread_mutex_unlock(&(cs->mutex));
     return;
 }
 void __attribute__((__stdcall__)) expDeleteCriticalSection(CRITICAL_SECTION *c)
 {
     struct CRITSECT* cs=*(struct CRITSECT**)c;
 
     dbgprintf("DeleteCriticalSection(0x%x)\n",c);
     pthread_mutex_destroy(&(cs->mutex));
     free(cs);
     return;
 }
 int __attribute__((__stdcall__)) expGetCurrentThreadId()
 {
     dbgprintf("GetCurrentThreadId() => %d\n", getpid());
     return getpid();
 }
 int __attribute__((__stdcall__)) expGetCurrentProcess()
 {
     dbgprintf("GetCurrentProcess() => %d\n", getpid());
     return getpid();
 }
 
 struct tls_s
 {
     void* value;
     int used;
     struct tls_s* prev;
     struct tls_s* next;
 };
 tls_t* g_tls=((void *)0);
 
 void* __attribute__((__stdcall__)) expTlsAlloc()
 {
     if(g_tls==((void *)0))
     {
         g_tls=my_mreq(sizeof(tls_t), 0);
         g_tls->next=g_tls->prev=((void *)0);
     }
     else
     {
         g_tls->next=my_mreq(sizeof(tls_t), 0);
         g_tls->next->prev=g_tls;
         g_tls->next->next=((void *)0);
         g_tls=g_tls->next;
     }
     dbgprintf("TlsAlloc() => 0x%x\n", g_tls);
     return g_tls;
 }
 
 int __attribute__((__stdcall__)) expTlsSetValue(tls_t* index, void* value)
 {
     int result;
     if(index==0)
         result=0;
     else
     {
         index->value=value;
         result=1;
     }
     dbgprintf("TlsSetValue(index 0x%x, value 0x%x) => %d \n", index, value, result );
     return result;
 }
 void* __attribute__((__stdcall__)) expTlsGetValue(tls_t* index)
 {
     void* result;
     if(index==0)
         result=0;
     else
         result=index->value;
     dbgprintf("TlsGetValue(index 0x%x) => 0x%x\n", index, result);
     return result;
 }
 int __attribute__((__stdcall__)) expTlsFree(tls_t* index)
 {
     int result;
     if(index==0)
         result=0;
     else
     {
         if(index->next)
             index->next->prev=index->prev;
         if(index->prev)
             index->prev->next=index->next;
         my_release((void*)index);
         result=1;
     }
     dbgprintf("TlsFree(index 0x%x) => %d\n", index, result);
     return result;
 }
 void* __attribute__((__stdcall__)) expLocalAlloc(int flags, int size)
 {
     void* z;
     if(flags&0x0040)
         z=my_mreq(size, 1);
     else
         z=my_mreq(size, 0);
     if(z==0)
         printf("LocalAlloc() failed\n");
     dbgprintf("LocalAlloc(%d, flags 0x%x) => 0x%x\n", size, flags, z);
     return z;
 }
 void* __attribute__((__stdcall__)) expLocalLock(void* z)
 {
     dbgprintf("LocalLock(0x%x) => 0x%x\n", z, z);
     return z;
 }
 
 void* __attribute__((__stdcall__)) expGlobalAlloc(int flags, int size)
 {
     void* z;
      dbgprintf("GlobalAlloc(%d, flags 0x%X)\n", size, flags);
     if(flags&0x0040)
         z=calloc(size, 1);
 
         else
         z=malloc(size);
 
     if(z==0)
         printf("GlobalAlloc() failed\n");
     dbgprintf("GlobalAlloc(%d, flags 0x%x) => 0x%x\n", size, flags, z);
     return z;
 }
 void* __attribute__((__stdcall__)) expGlobalLock(void* z)
 {
     dbgprintf("GlobalLock(0x%x) => 0x%x\n", z, z);
     return z;
 }
 int __attribute__((__stdcall__)) expLoadStringA(long instance, long id, void* buf, long size)
 {
     int result=LoadStringA(instance, id, buf, size);
 
     dbgprintf("LoadStringA(instance 0x%x, id 0x%x, buffer 0x%x, size %d) => %d ( %s )\n",
         instance, id, buf, size, result, buf);
 
 
 
     return result;
 }
 
 long __attribute__((__stdcall__)) expMultiByteToWideChar(long v1, long v2, char* s1, long siz1, short* s2, int siz2)
 {
 
     int i;
     int result;
     if(s2==0)
         result=1;
     else
     {
     if(siz1>siz2/2)siz1=siz2/2;
     for(i=1; i<=siz1; i++)
     {
         *s2=*s1;
         if(!*s1)break;
         s2++;
         s1++;
     }
     result=i;
     }
     if(s1)
     dbgprintf("MultiByteToWideChar(codepage %d, flags 0x%x, string 0x%x='%s', "
         "size %d, dest buffer 0x%x, dest size %d) => %d\n",
             v1, v2, s1, s1, siz1, s2, siz2, result);
     else
     dbgprintf("MultiByteToWideChar(codepage %d, flags 0x%x, string NULL, "
         "size %d, dest buffer 0x%x, dest size %d) =>\n",
             v1, v2, siz1, s2, siz2, result);
     return result;
 }
 static void wch_print(const short* str)
 {
     dbgprintf("  src: ");
     while(*str)dbgprintf("%c", *str++);
     dbgprintf("\n");
 }
 long __attribute__((__stdcall__)) expWideCharToMultiByte(long v1, long v2, short* s1, long siz1, char* s2, int siz2, char* c3, int* siz3)
 {
     int result;
     dbgprintf("WideCharToMultiByte(codepage %d, flags 0x%x, src 0x%x, src size %d, "
         "dest 0x%x, dest size %d, defch 0x%x, used_defch 0x%x)", v1, v2, s1, siz1, s2, siz2, c3, siz3);
     result=WideCharToMultiByte(v1, v2, s1, siz1, s2, siz2, c3, siz3);
     dbgprintf("=> %d\n", result);
     if(s1)wch_print(s1);
     if(s2)dbgprintf("  dest: %s\n", s2);
     return result;
 }
 long __attribute__((__stdcall__)) expGetVersionExA(OSVERSIONINFOA* c)
 {
     dbgprintf("GetVersionExA(0x%x) => 1\n");
     c->dwOSVersionInfoSize=sizeof(*c);
     c->dwMajorVersion=4;
     c->dwMinorVersion=0;
     c->dwBuildNumber=0x4000457;
     c->dwPlatformId=1;
     (__extension__ (__builtin_constant_p (" B") ? (((size_t)(const void *)((" B") + 1) - (size_t)(const void *)(" B") == 1) && strlen (" B") + 1 <= 8 ? __strcpy_small (c->szCSDVersion, __extension__ (((__const unsigned char *) (__const char *) (" B"))[0  + 1] << 8 | ((__const unsigned char *) (__const char *) (" B"))[0]), __extension__ (((__const unsigned char *) (__const char *) (" B"))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (" B"))[4]), __extension__ (((((__const unsigned char *) (__ const char *) (" B"))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (" B"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (" B"))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (" B"))[0]), __extension__ (((((__const  unsigned char *) (__const char *) (" B"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (" B"))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (" B"))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) (" B"))[4]), strlen  (" B") + 1) : (char *) memcpy (c->szCSDVersion, " B", strlen (" B") + 1)) : strcpy (c->szCSDVersion, " B")));
     dbgprintf("  Major version: 4\n  Minor version: 0\n  Build number: 0x4000457\n"
     "  Platform Id: VER_PLATFORM_WIN32_WINDOWS\n Version string: ' B'\n");
     return 1;
 }
 HANDLE __attribute__((__stdcall__)) expCreateSemaphoreA(char* v1, long init_count, long max_count, char* name)
 {
     pthread_mutex_t *pm;
     pthread_cond_t *pc;
     if(mlist!=((void *)0))
     {
         mutex_list* pp=mlist;
         if(name!=((void *)0))
         do
         {
             if((__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (pp->name) && __builtin_constant_p (name) && (__s1_len = strlen (pp->name), __s2_len = strlen (name), (!((size_t)(const void *)((pp->name) + 1) - (size_t)(const void *)(pp- >name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (pp->name), (__const char *) (name), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_ constant_p (pp->name) && ((size_t)(const void *)((pp->name) + 1) - (size_t)(const void *)(pp->name) == 1) && (__s1_len = strlen (pp->name), __s1_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name)  == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (pp->name))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const  char *) (pp->name))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (pp->name))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (_ _s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (pp->name))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *)  (__const char *) (name); register int __result = (((__const unsigned char *) (__const char *) (pp->name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (pp->name))[1] - __s2[1]); if (__s1_len  > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (pp->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (pp->name))[3] - __s2[3]); } } __result; }))) : (__built in_cons!
 tant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s2_len = strlen (name), __s2_len < 4) ? (__builtin_constant_p (pp->name) && ((size_t)(const void *)((pp->name) + 1) - (size_t)(const void *)(pp->name) == 1) ?  (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (pp->name))[0] - ((__const unsigned char *) (__const char *)(name))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *)  (pp->name))[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (pp->name))[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len  > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (pp->name))[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const  char *) (pp->name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (name))[1]); if (__s2_len > 1 && __resul t == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (name))[3]); } } __result; }))) : strcmp (pp->name, name)))); }) ==0) && (pp->type==1))
             {
                 dbgprintf("CreateSemaphoreA(0x%x, init_count %d, max_count %d, name 0x%x='%s') => 0x%x",
                     v1, init_count, max_count, name, name, mlist);
                 return (HANDLE)mlist;
             }
         }while((pp=pp->prev));
     }
     pm=my_mreq(sizeof(pthread_mutex_t), 0);
     pthread_mutex_init(pm, ((void *)0));
     pc=my_mreq(sizeof(pthread_cond_t), 0);
     pthread_cond_init(pc, ((void *)0));
     if(mlist==((void *)0))
     {
         mlist=my_mreq(sizeof(mutex_list), 00);
         mlist->next=mlist->prev=((void *)0);
     }
     else
     {
         mlist->next=my_mreq(sizeof(mutex_list), 00);
         mlist->next->prev=mlist;
         mlist->next->next=((void *)0);
         mlist=mlist->next;
     }
     mlist->type=1;
     mlist->pm=pm;
     mlist->pc=pc;
     mlist->state=0;
     mlist->reset=0;
     mlist->semaphore=init_count;
     if(name!=((void *)0))
         (__extension__ (__builtin_constant_p (name) && __builtin_constant_p (64) ? (strlen (name) + 1 >= ((size_t) (64)) ? (char *) memcpy (mlist->name, name, 64) : strncpy (mlist->name, name, 64)) : strncpy (mlist->name, name, 64)));
     else
         mlist->name[0]=0;
     if(pm==((void *)0))
         dbgprintf("ERROR::: CreateSemaphoreA failure\n");
     if(name)
         dbgprintf("CreateSemaphoreA(0x%x, init_count %d, max_count %d, name 0x%x='%s') => 0x%x",
         v1, init_count, max_count, name, name, mlist);
     else
         dbgprintf("CreateSemaphoreA(0x%x, init_count %d, max_count %d, name 0) => 0x%x",
         v1, init_count, max_count, mlist);
     return (HANDLE)mlist;
 }
 
 long __attribute__((__stdcall__)) expReleaseSemaphore(long hsem, long increment, long* prev_count)
 {
 
 
 
 
     mutex_list *ml = (mutex_list *)hsem;
 
     pthread_mutex_lock(ml->pm);
     if (prev_count != 0) *prev_count = ml->semaphore;
     if (ml->semaphore == 0) pthread_cond_signal(ml->pc);
     ml->semaphore += increment;
     pthread_mutex_unlock(ml->pm);
     dbgprintf("ReleaseSemaphore(semaphore 0x%x, increment %d, prev_count 0x%x) => 1\n",
         hsem, increment, prev_count);
     return 1;
 }
 
 
 long __attribute__((__stdcall__)) expRegOpenKeyExA(long key, const char* subkey, long reserved, long access, int* newkey)
 {
     long result=RegOpenKeyExA(key, subkey, reserved, access, newkey);
     dbgprintf("RegOpenKeyExA(key 0x%x, subkey %s, reserved %d, access 0x%x, pnewkey 0x%x) => %d\n",
         key, subkey, reserved, access, newkey, result);
     if(newkey)dbgprintf("  New key: 0x%x\n", *newkey);
     return result;
 }
 long __attribute__((__stdcall__)) expRegCloseKey(long key)
 {
     long result=RegCloseKey(key);
     dbgprintf("RegCloseKey(0x%x) => %d\n", key, result);
     return result;
 }
 long __attribute__((__stdcall__)) expRegQueryValueExA(long key, const char* value, int* reserved, int* type, int* data, int* count)
 {
     long result=RegQueryValueExA(key, value, reserved, type, data, count);
     dbgprintf("RegQueryValueExA(key 0x%x, value %s, reserved 0x%x, data 0x%x, count 0x%x)"
         " => 0x%x\n", key, value, reserved, data, count, result);
     if(data && count)dbgprintf("  read %d bytes: '%s'\n", *count, data);
     return result;
 }
 long __attribute__((__stdcall__)) expRegCreateKeyExA(long key, const char* name, long reserved,
                                                            void* classs, long options, long security,
                                                            void* sec_attr, int* newkey, int* status)
 {
     long result=RegCreateKeyExA(key, name, reserved, classs, options, security, sec_attr, newkey, status);
     dbgprintf("RegCreateKeyExA(key 0x%x, name 0x%x='%s', reserved=0x%x,"
         " 0x%x, 0x%x, 0x%x, newkey=0x%x, status=0x%x) => %d\n",
             key, name, name, reserved, classs, options, security, sec_attr, newkey, status, result);
     if(!result && newkey) dbgprintf("  New key: 0x%x\n", *newkey);
     if(!result && status) dbgprintf("  New key status: 0x%x\n", *status);
     return result;
 }
 long __attribute__((__stdcall__)) expRegSetValueExA(long key, const char* name, long v1, long v2, void* data, long size)
 {
     long result=RegSetValueExA(key, name, v1, v2, data, size);
     dbgprintf("RegSetValueExA(key 0x%x, name '%s', 0x%x, 0x%x, data 0x%x -> 0x%x '%s', size=%d) => %d",
         key, name, v1, v2, data, *(int*)data, data, size, result);
     return result;
 }
 
 long __attribute__((__stdcall__)) expRegOpenKeyA (
 long hKey,
  LPCSTR lpSubKey,
  int* phkResult
 ){
     long result=RegOpenKeyExA(hKey, lpSubKey, 0, 0, phkResult);
     dbgprintf("RegOpenKeyExA(key 0x%x, subkey '%s', 0x%x) => %d\n",
         hKey, lpSubKey, phkResult, result);
     if(!result && phkResult) dbgprintf("  New key: 0x%x\n", *phkResult);
     return result;
 }
 
 long __attribute__((__stdcall__)) expQueryPerformanceCounter(long long* z)
 {
     longcount(z);
     dbgprintf("QueryPerformanceCounter(0x%x) => 1 ( %Ld )\n", z, *z);
     return 1;
 }
 
 
 
 
 static double linux_cpuinfo_freq()
 {
     double freq=-1;
     FILE *f;
     char line[200];
     char *s,*value;
 
     f = fopen ("/proc/cpuinfo", "r");
     if (f != ((void *)0)) {
         while (fgets(line,sizeof(line),f)!=((void *)0)) {
 
             if (!(value = (__extension__ (__builtin_constant_p (':') && (':') == '\0' ? (char *) __rawmemchr (line, ':') : strchr (line, ':')))))
                 continue;
 
             *value++ = '\0';
 
             while (*value==' ') value++;
             if ((s=(__extension__ (__builtin_constant_p ('\n') && ('\n') == '\0' ? (char *) __rawmemchr (value, '\n') : strchr (value, '\n')))))
                 *s='\0';
 
             if (!strncasecmp(line, "cpu MHz",strlen("cpu MHz"))
                 && sscanf(value, "%lf", &freq) == 1) {
                 freq*=1000;
                 break;
             }
         }
         fclose(f);
     }
     return freq;
 }
 
 
 static double
 solaris_kstat_freq()
 {
 # 1380 "win32.c"
     return -1;
 }
 
 
 
 
 static double tsc_freq()
 {
     static double ofreq=0.0;
     int i;
     int x,y;
     i=time(((void *)0));
     if (ofreq != 0.0) return ofreq;
     while(i==time(((void *)0)));
     x=localcount();
     i++;
     while(i==time(((void *)0)));
     y=localcount();
     ofreq = (double)(y-x)/1000.;
     return ofreq;
 }
 
 static double CPU_Freq()
 {
     double freq;
 
     if ((freq = linux_cpuinfo_freq()) > 0)
         return freq;
 
     if ((freq = solaris_kstat_freq()) > 0)
         return freq;
 
     return tsc_freq();
 }
 
 long __attribute__((__stdcall__)) expQueryPerformanceFrequency(long long* z)
 {
     *z=(long long)CPU_Freq();
     dbgprintf("QueryPerformanceFrequency(0x%x) => 1 ( %Ld )\n", z, *z);
     return 1;
 }
 long __attribute__((__stdcall__)) exptimeGetTime()
 {
     struct timeval t;
     long result;
     gettimeofday(&t, 0);
     result=1000*t.tv_sec+t.tv_usec/1000;
     dbgprintf("timeGetTime() => %d\n", result);
     return result;
 }
 void* __attribute__((__stdcall__)) expLocalHandle(void* v)
 {
     dbgprintf("LocalHandle(0x%x) => 0x%x\n", v, v);
     return v;
 }
 void* __attribute__((__stdcall__)) expGlobalHandle(void* v)
 {
     dbgprintf("GlobalHandle(0x%x) => 0x%x\n", v, v);
     return v;
 }
 int __attribute__((__stdcall__)) expGlobalUnlock(void* v)
 {
     dbgprintf("GlobalUnlock(0x%x) => 1\n", v);
     return 1;
 }
 
 void* __attribute__((__stdcall__)) expGlobalFree(void* v)
 {
     dbgprintf("GlobalFree(0x%x) => 0\n", v);
 
     free(v);
     return 0;
 }
 
 
 void* __attribute__((__stdcall__)) expGlobalReAlloc(void* v, int size, int flags)
 {
     void* result=realloc(v, size);
     dbgprintf("GlobalReAlloc(0x%x, size %d, flags 0x%x) => 0x%x\n", v,size,flags,result);
     return result;
 }
 
 int __attribute__((__stdcall__)) expLocalUnlock(void* v)
 {
     dbgprintf("LocalUnlock(0x%x) => 1\n", v);
     return 1;
 }
 
 void* __attribute__((__stdcall__)) expLocalFree(void* v)
 {
     dbgprintf("LocalFree(0x%x) => 0\n", v);
     my_release(v);
     return 0;
 }
 HRSRC __attribute__((__stdcall__)) expFindResourceA(HMODULE module, char* name, char* type)
 {
     HRSRC result=FindResourceA(module, name, type);
     dbgprintf("FindResourceA(module 0x%x, name 0x%x, type 0x%x) => 0x%x\n", module, name, type, result);
     return result;
 }
 extern HRSRC __attribute__((__stdcall__)) LoadResource(HMODULE, HRSRC);
 HGLOBAL __attribute__((__stdcall__)) expLoadResource(HMODULE module, HRSRC res)
 {
     HGLOBAL result=LoadResource(module, res);
     dbgprintf("LoadResource(module 0x%x, resource 0x%x) => 0x%x\n", module, res, result);
     return result;
 }
 void* __attribute__((__stdcall__)) expLockResource(long res)
 {
     void* result=LockResource(res);
     dbgprintf("LockResource(0x%x) => 0x%x\n", res, result);
     return result;
 }
 int __attribute__((__stdcall__)) expFreeResource(long res)
 {
     int result=FreeResource(res);
     dbgprintf("FreeResource(0x%x) => %d\n", res, result);
     return result;
 }
 
 
 int __attribute__((__stdcall__)) expCloseHandle(long v1)
 {
     dbgprintf("CloseHandle(0x%x) => 1\n", v1);
     return 1;
 }
 
 const char* __attribute__((__stdcall__)) expGetCommandLineA()
 {
     dbgprintf("GetCommandLineA() => \"c:\\aviplay.exe\"\n");
     return "c:\\aviplay.exe";
 }
 static short envs[]={'p', 'a', 't', 'h', ' ', 'c', ':', '\\', 0, 0};
 LPWSTR __attribute__((__stdcall__)) expGetEnvironmentStringsW()
 {
  dbgprintf("GetEnvironmentStringsW() => 0\n", envs);
  return 0;
 }
 void * __attribute__((__stdcall__)) expRtlZeroMemory(void *p, size_t len)
 {
     void* result=(__extension__ (__builtin_constant_p (len) && (len) <= 16 ? ((len) == 1 ? ({ void *__s = (p); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (p); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; }  *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (len)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); cas e 7: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ (void *)((char *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c *  0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 2: __u->__usi =  (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 5: __u->__ui = __c * 0x01010101; _ _u = __extension__ (void *)((char *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((cha r *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (p); __builtin_memset (__s, ' \0', len); __s; }) : memset (p, 0, len))));
     dbgprintf("RtlZeroMemory(0x%x, len %d) => 0x%x\n",p,len,result);
     return result;
 }
 void * __attribute__((__stdcall__)) expRtlMoveMemory(void *dst, void *src, size_t len)
 {
     void* result=memmove(dst,src,len);
     dbgprintf("RtlMoveMemory (dest 0x%x, src 0x%x, len %d) => 0x%x\n",dst,src,len,result);
     return result;
 }
 
 void * __attribute__((__stdcall__)) expRtlFillMemory(void *p, int ch, size_t len)
 {
     void* result=(__extension__ (__builtin_constant_p (len) && (len) <= 16 ? ((len) == 1 ? ({ void *__s = (p); *((__uint8_t *) __s) = (__uint8_t) ch; __s; }) : ({ void *__s = (p); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; }  *__u = __s; __uint8_t __c = (__uint8_t) (ch); switch ((unsigned int) (len)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); c ase 7: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ (void *)((char *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c  * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 2: __u->__usi  = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 5: __u->__ui = __c * 0x01010101;  __u = __extension__ (void *)((char *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((c har *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (ch) && (ch) == '\0' ? ({ void *__s = (p); __builtin_memset (__ s, '\0', len); __s; }) : memset (p, ch, len))));
     dbgprintf("RtlFillMemory(0x%x, char 0x%x, len %d) => 0x%x\n",p,ch,len,result);
     return result;
 }
 int __attribute__((__stdcall__)) expFreeEnvironmentStringsW(short* strings)
 {
     dbgprintf("FreeEnvironmentStringsW(0x%x) => 1\n", strings);
     return 1;
 }
 int __attribute__((__stdcall__)) expFreeEnvironmentStringsA(char* strings)
 {
  dbgprintf("FreeEnvironmentStringsA(0x%x) => 1\n", strings);
  return 1;
 }
 static const char ch_envs[]=
     "__MSVCRT_HEAP_SELECT=__GLOBAL_HEAP_SELECTED,1\r\n"
     "PATH=C:\\;C:\\windows\\;C:\\windows\\system\r\n";
 LPCSTR __attribute__((__stdcall__)) expGetEnvironmentStrings()
 {
     dbgprintf("GetEnvironmentStrings() => 0x%x\n", ch_envs);
     return (LPCSTR)ch_envs;
 
 
 }
 
 int __attribute__((__stdcall__)) expGetStartupInfoA(STARTUPINFOA *s)
 {
     int i;
     dbgprintf("GetStartupInfoA(0x%x) => 1\n");
     (__extension__ (__builtin_constant_p (sizeof(*s)) && (sizeof(*s)) <= 16 ? ((sizeof(*s)) == 1 ? ({ void *__s = (s); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (s); union { unsigned int __ui; unsigned short int __usi; unsigned char  __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (sizeof(*s))) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char * ) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ (void *)((char *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u ->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 2 : __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 5: __u->__ui = __c  * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension_ _ (void *)((char *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (s); __builtin _memset (__s, '\0', sizeof(*s)); __s; }) : memset (s, 0, sizeof(*s)))));
     s->cb=sizeof(*s);
 
 
 
 
 
  s->dwFlags=s->wShowWindow=1;
 
     dbgprintf("  cb=%d\n", s->cb);
     dbgprintf("  lpReserved='%s'\n", s->lpReserved);
     dbgprintf("  lpDesktop='%s'\n", s->lpDesktop);
     dbgprintf("  lpTitle='%s'\n", s->lpTitle);
     dbgprintf("  dwX=%d dwY=%d dwXSize=%d dwYSize=%d\n",
         s->dwX, s->dwY, s->dwXSize, s->dwYSize);
     dbgprintf("  dwXCountChars=%d dwYCountChars=%d dwFillAttribute=%d\n",
         s->dwXCountChars, s->dwYCountChars, s->dwFillAttribute);
     dbgprintf("  dwFlags=0x%x wShowWindow=0x%x cbReserved2=0x%x\n",
         s->dwFlags, s->wShowWindow, s->cbReserved2);
     dbgprintf("  lpReserved2=0x%x hStdInput=0x%x hStdOutput=0x%x hStdError=0x%x\n",
         s->lpReserved2, s->hStdInput, s->hStdOutput, s->hStdError);
     return 1;
 }
 
 int __attribute__((__stdcall__)) expGetStdHandle(int z)
 {
  dbgprintf("GetStdHandle(0x%x) => 0x%x\n", z+0x1234);
  return z+0x1234;
 }
 int __attribute__((__stdcall__)) expGetFileType(int handle)
 {
  dbgprintf("GetFileType(0x%x) => 0x3 = pipe\n", handle);
  return 0x3;
 }
 int __attribute__((__stdcall__)) expSetHandleCount(int count)
 {
     dbgprintf("SetHandleCount(0x%x) => 1\n", count);
     return 1;
 }
 int __attribute__((__stdcall__)) expGetACP()
 {
     dbgprintf("GetACP() => 0\n");
     return 0;
 }
 extern WINE_MODREF *MODULE32_LookupHMODULE(HMODULE m);
 int __attribute__((__stdcall__)) expGetModuleFileNameA(int module, char* s, int len)
 {
     WINE_MODREF *mr;
     int result;
 
     if(s==0)
         result=0;
     else
     if(len<35)
     result=0;
     else
     {
         result=1;
         (__extension__ (__builtin_constant_p ("c:\\windows\\system\\") ? (((size_t)(const void *)(("c:\\windows\\system\\") + 1) - (size_t)(const void *)("c:\\windows\\system\\") == 1) && strlen ("c:\\windows\\system\\") + 1 <= 8 ? __strcpy_small (s, __e xtension__ (((__const unsigned char *) (__const char *) ("c:\\windows\\system\\"))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) ("c:\\windows\\system\\"))[0]), __extension__ (((__const unsigned char *) (__const char *) ("c:\\windows\\system\ \"))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) ("c:\\windows\\system\\"))[4]), __extension__ (((((__const unsigned char *) (__const char *) ("c:\\windows\\system\\"))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) ("c:\\windows \\system\\"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("c:\\windows\\system\\"))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("c:\\windows\\system\\"))[0]), __extension__ (((((__const unsigned char *) (__const char *) (" c:\\windows\\system\\"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) ("c:\\windows\\system\\"))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("c:\\windows\\system\\"))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *)  ("c:\\windows\\system\\"))[4]), strlen ("c:\\windows\\system\\") + 1) : (char *) memcpy (s, "c:\\windows\\system\\", strlen ("c:\\windows\\system\\") + 1)) : strcpy (s, "c:\\windows\\system\\")));
         mr=MODULE32_LookupHMODULE(module);
         if(mr==0)
             strcat(s, "aviplay.dll");
         else
         if(strrchr(mr->filename, '/')==((void *)0))
             strcat(s, mr->filename);
         else
             strcat(s, strrchr(mr->filename, '/')+1);
     }
     if(!s)
     dbgprintf("GetModuleFileNameA(0x%x, 0x%x, %d) => %d\n",
         module, s, len, result);
     else
     dbgprintf("GetModuleFileNameA(0x%x, 0x%x, %d) => %d ( '%s' )",
         module, s, len, result, s);
     return result;
 }
 
 int __attribute__((__stdcall__)) expSetUnhandledExceptionFilter(void* filter)
 {
     dbgprintf("SetUnhandledExceptionFilter(0x%x) => 1\n", filter);
     return 1;
 }
 extern char* def_path;
 int __attribute__((__stdcall__)) expLoadLibraryA(char* name)
 {
     char qq[256];
     int result;
     char* lastbc;
     if (!name)
         return -1;
 
 
 
     lastbc = strrchr(name, '\\');
     if (lastbc)
     {
         int i;
         lastbc++;
         for (i = 0; 1 ;i++)
         {
             name[i] = *lastbc++;
             if (!name[i])
                 break;
         }
     }
 
 
     if((__extension__ (__builtin_constant_p (11) && ((__builtin_constant_p (name) && strlen (name) < ((size_t) (11))) || (__builtin_constant_p ("c:\\windows\\") && strlen ("c:\\windows\\") < ((size_t) (11)))) ? __extension__ ({ size_t __s1_len, __s2_len;  (__builtin_constant_p (name) && __builtin_constant_p ("c:\\windows\\") && (__s1_len = strlen (name), __s2_len = strlen ("c:\\windows\\"), (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s1_len >= 4) && (!((size_t)(const v oid *)(("c:\\windows\\") + 1) - (size_t)(const void *)("c:\\windows\\") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (name), (__const char *) ("c:\\windows\\"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (name) && ((s ize_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s1_len = strlen (name), __s1_len < 4) ? (__builtin_constant_p ("c:\\windows\\") && ((size_t)(const void *)(("c:\\windows\\") + 1) - (size_t)(const void *)("c:\\windows\\") == 1)  ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)("c:\\windows\\"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const  char *) (name))[1] - ((__const unsigned char *) (__const char *) ("c:\\windows\\"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) ("c:\\windows\\ "))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) ("c:\\windows\\"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__co nst unsigned char *) (__const char *) ("c:\\windows\\"); register int __result = (((__const unsigned char *) (__const char *) (name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] -  __s2[1!
 ]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - __s2[3]); } } __result; }))) :  (__builtin_constant_p ("c:\\windows\\") && ((size_t)(const void *)(("c:\\windows\\") + 1) - (size_t)(const void *)("c:\\windows\\") == 1) && (__s2_len = strlen ("c:\\windows\\"), __s2_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((n ame) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)("c:\\windows\\"))[0]); if (__s2_len > 0 && __result == 0) { _ _result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) ("c:\\windows\\"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const un signed char *) (__const char *) ("c:\\windows\\"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) ("c:\\windows\\"))[3]); } } __result; })) : (__ext ension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("c:\\windows\\"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ( (__const unsigned char *) (__const char *) ("c:\\windows\\"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("c:\\windows\\"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((_ _const unsigned char *) (__const char *) ("c:\\windows\\"))[3]); } } __result; }))) : strcmp (name, "c:\\windows\\")))); }) : strncmp (name, "c:\\windows\\", 11)))==0)name+=11;
     if((__extension__ (__builtin_constant_p (2) && ((__builtin_constant_p (name) && strlen (name) < ((size_t) (2))) || (__builtin_constant_p (".\\") && strlen (".\\") < ((size_t) (2)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p  (name) && __builtin_constant_p (".\\") && (__s1_len = strlen (name), __s2_len = strlen (".\\"), (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((".\\") + 1) - (size_t)(const void * )(".\\") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (name), (__const char *) (".\\"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) &&  (__s1_len = strlen (name), __s1_len < 4) ? (__builtin_constant_p (".\\") && ((size_t)(const void *)((".\\") + 1) - (size_t)(const void *)(".\\") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ( (__const unsigned char *) (__const char *)(".\\"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) (".\\"))[1]); if (__s1_len > 1 && __result == 0)  { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) (".\\"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned c har *) (__const char *) (".\\"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (".\\"); register int __result = (((__const unsigned char *) (__const char *) (name))[0] - __s2[0]); if ( __s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - __s2[2]); if (__s1_len > 2 && __resu lt == 0!
 ) __result = (((__const unsigned char *) (__const char *) (name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (".\\") && ((size_t)(const void *)((".\\") + 1) - (size_t)(const void *)(".\\") == 1) && (__s2_len = strlen (".\\"), __s2_len < 4)  ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)( ".\\"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) (".\\"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) ( __const char *) (name))[2] - ((__const unsigned char *) (__const char *) (".\\"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) (".\\"))[3]); } } _ _result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (".\\"))[0]; if (__s2_len > 0 && __result == 0) { __result = ( __s1[1] - ((__const unsigned char *) (__const char *) (".\\"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (".\\"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const un signed char *) (__const char *) (".\\"))[3]); } } __result; }))) : strcmp (name, ".\\")))); }) : strncmp (name, ".\\", 2)))==0) name += 2;
     if(name[0]!='/')
     {
         (__extension__ (__builtin_constant_p (def_path) ? (((size_t)(const void *)((def_path) + 1) - (size_t)(const void *)(def_path) == 1) && strlen (def_path) + 1 <= 8 ? __strcpy_small (qq, __extension__ (((__const unsigned char *) (__const char *) (de f_path))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) (def_path))[0]), __extension__ (((__const unsigned char *) (__const char *) (def_path))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (def_path))[4]), __extension__ (((((__con st unsigned char *) (__const char *) (def_path))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (def_path))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (def_path))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (def_ path))[0]), __extension__ (((((__const unsigned char *) (__const char *) (def_path))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (def_path))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (def_path))[4 + 1]) << 8 | ((__const uns igned char *) (__const char *) (def_path))[4]), strlen (def_path) + 1) : (char *) memcpy (qq, def_path, strlen (def_path) + 1)) : strcpy (qq, def_path)));
         strcat(qq, "/");
         strcat(qq, name);
     }
     printf("Loading DLL: %s", qq);fflush(stdout);
 
     result=LoadLibraryA(qq);
     if(!result) printf("  FAILED!\n"); else printf("  OK\n");
 
     return result;
 }
 int __attribute__((__stdcall__)) expFreeLibrary(int module)
 {
     int result=FreeLibrary(module);
     dbgprintf("FreeLibrary(0x%x) => %d\n", module, result);
     return result;
 }
 void* LookupExternalByName(const char* library, const char* name);
 void* __attribute__((__stdcall__)) expGetProcAddress(HMODULE mod, char* name)
 {
     void *result;
     if(mod!=0x120)
         result=GetProcAddress(mod, name);
     else
         result=LookupExternalByName("kernel32.dll", name);
     dbgprintf("GetProcAddress(0x%x, '%s') => 0x%x\n", mod, name, result);
     return result;
 }
 
 long __attribute__((__stdcall__)) expCreateFileMappingA(int hFile, void* lpAttr,
     long flProtect, long dwMaxHigh, long dwMaxLow, const char* name)
 {
     long result=CreateFileMappingA(hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name);
     if(!name)
     dbgprintf("CreateFileMappingA(file 0x%x, lpAttr 0x%x, "
         "flProtect 0x%x, dwMaxHigh 0x%x, dwMaxLow 0x%x, name 0) => %d\n",
             hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, result);
     else
     dbgprintf("CreateFileMappingA(file 0x%x, lpAttr 0x%x, "
         "flProtect 0x%x, dwMaxHigh 0x%x, dwMaxLow 0x%x, name 0x%x='%s') => %d\n",
             hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name, name, result);
     return result;
 }
 
 long __attribute__((__stdcall__)) expOpenFileMappingA(long hFile, long hz, const char* name)
 {
     long result=OpenFileMappingA(hFile, hz, name);
     if(!name)
         dbgprintf("OpenFileMappingA(0x%x, 0x%x, 0) => %d\n",
             hFile, hz, result);
     else
         dbgprintf("OpenFileMappingA(0x%x, 0x%x, 0x%x='%s') => %d\n",
             hFile, hz, name, name, result);
     return result;
 }
 
 void* __attribute__((__stdcall__)) expMapViewOfFile(HANDLE file, DWORD mode, DWORD offHigh, DWORD offLow, DWORD size)
 {
     dbgprintf("MapViewOfFile(0x%x, 0x%x, 0x%x, 0x%x, size %d) => 0x%x\n",
         file,mode,offHigh,offLow,size,(char*)file+offLow);
     return (char*)file+offLow;
 }
 
 void* __attribute__((__stdcall__)) expUnmapViewOfFile(void* view)
 {
     dbgprintf("UnmapViewOfFile(0x%x) => 0\n", view);
     return 0;
 }
 
 void* __attribute__((__stdcall__)) expSleep(int time)
 {
     dbgprintf("Sleep(%d) => 0\n", time);
     usleep(time);
     return 0;
 }
 
 void* __attribute__((__stdcall__)) expCreateCompatibleDC(int hdc)
 {
         dbgprintf("CreateCompatibleDC(%d) => 0x81\n", hdc);
         return (void*)0x81;
 }
 
 int __attribute__((__stdcall__)) expGetDeviceCaps(int hdc, int unk)
 {
         dbgprintf("GetDeviceCaps(0x%x, %d) => 0\n", hdc, unk);
         return 0;
 }
 
 WIN_BOOL __attribute__((__stdcall__)) expDeleteDC(int hdc)
 {
         dbgprintf("DeleteDC(0x%x) => 0\n", hdc);
         return 0;
 }
 
 int expwsprintfA(char* string, char* format, ...)
 {
     va_list va;
     int result;
     __builtin_stdarg_start((va),format);
     result=vsprintf(string, format, va);
     dbgprintf("wsprintfA(0x%x, '%s', ...) => %d\n", string, format, result);
     __builtin_va_end(va);
     return result;
 }
 
 int __attribute__((__stdcall__)) expGetPrivateProfileIntA(const char* appname, const char* keyname, int default_value, const char* filename)
 {
     int size=255;
     char buffer[256];
     char* fullname;
     int result;
 
     buffer[255]=0;
     if(!(appname && keyname && filename) )
     {
         dbgprintf("GetPrivateProfileIntA('%s', '%s', %d, '%s') => %d\n", appname, keyname, default_value, filename, default_value );
         return default_value;
     }
     fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename));
     (__extension__ (__builtin_constant_p ("Software\\IniFileMapping\\") ? (((size_t)(const void *)(("Software\\IniFileMapping\\") + 1) - (size_t)(const void *)("Software\\IniFileMapping\\") == 1) && strlen ("Software\\IniFileMapping\\") + 1 <= 8 ? __strc py_small (fullname, __extension__ (((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0]), __extension__ (((__const unsigned char *) (__con st char *) ("Software\\IniFileMapping\\"))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4]), __extension__ (((((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 3] << 8 | ((__const  unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0]),  __extension__ (((((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\ IniFileMapping\\"))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4]), strlen ("Software\\IniFileMapping\\") + 1) : (char *) memcpy (fullname, "Software\\IniFileMapping\\", strlen ("Software\\IniFileMapping\\" ) + 1)) : strcpy (fullname, "Software\\IniFileMapping\\")));
     strcat(fullname, appname);
     strcat(fullname, "\\");
     strcat(fullname, keyname);
     strcat(fullname, "\\");
     strcat(fullname, filename);
     result=RegQueryValueExA(((HKEY) 0x80000002), fullname, ((void *)0), ((void *)0), (int*)buffer, &size);
     if((size>=0)&&(size<256))
         buffer[size]=0;
 
     free(fullname);
     if(result)
         result=default_value;
     else
         result=atoi(buffer);
     dbgprintf("GetPrivateProfileIntA('%s', '%s', %d, '%s') => %d\n", appname, keyname, default_value, filename, result);
     return result;
 }
 int __attribute__((__stdcall__)) expGetProfileIntA(const char* appname, const char* keyname, int default_value)
 {
     dbgprintf("GetProfileIntA -> ");
 
     return expGetPrivateProfileIntA(appname, keyname, default_value, "default");
 }
 
 int __attribute__((__stdcall__)) expGetPrivateProfileStringA(const char* appname, const char* keyname,
         const char* def_val, char* dest, unsigned int len, const char* filename)
 {
     int result;
     int size;
     char* fullname;
     dbgprintf("GetPrivateProfileStringA('%s', '%s', def_val '%s', 0x%x, 0x%x, '%s')", appname, keyname, def_val, dest, len, filename );
     if(!(appname && keyname && filename) ) return 0;
     fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename));
     (__extension__ (__builtin_constant_p ("Software\\IniFileMapping\\") ? (((size_t)(const void *)(("Software\\IniFileMapping\\") + 1) - (size_t)(const void *)("Software\\IniFileMapping\\") == 1) && strlen ("Software\\IniFileMapping\\") + 1 <= 8 ? __strc py_small (fullname, __extension__ (((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0]), __extension__ (((__const unsigned char *) (__con st char *) ("Software\\IniFileMapping\\"))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4]), __extension__ (((((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 3] << 8 | ((__const  unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0]),  __extension__ (((((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\ IniFileMapping\\"))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4]), strlen ("Software\\IniFileMapping\\") + 1) : (char *) memcpy (fullname, "Software\\IniFileMapping\\", strlen ("Software\\IniFileMapping\\" ) + 1)) : strcpy (fullname, "Software\\IniFileMapping\\")));
     strcat(fullname, appname);
     strcat(fullname, "\\");
     strcat(fullname, keyname);
     strcat(fullname, "\\");
     strcat(fullname, filename);
     size=len;
     result=RegQueryValueExA(((HKEY) 0x80000002), fullname, ((void *)0), ((void *)0), (int*)dest, &size);
 
     free(fullname);
     if(result)
     {
         (__extension__ (__builtin_constant_p (def_val) && __builtin_constant_p (size) ? (strlen (def_val) + 1 >= ((size_t) (size)) ? (char *) memcpy (dest, def_val, size) : strncpy (dest, def_val, size)) : strncpy (dest, def_val, size)));
         if (strlen(def_val)< size) size = strlen(def_val);
     }
     dbgprintf(" => %d ( '%s' )\n", size, dest);
     return size;
 }
 int __attribute__((__stdcall__)) expWritePrivateProfileStringA(const char* appname, const char* keyname,
         const char* string, const char* filename)
 {
     int size=256;
     char* fullname;
     dbgprintf("WritePrivateProfileStringA('%s', '%s', '%s', '%s')", appname, keyname, string, filename );
     if(!(appname && keyname && filename) )
     {
         dbgprintf(" => -1\n");
         return -1;
     }
     fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename));
     (__extension__ (__builtin_constant_p ("Software\\IniFileMapping\\") ? (((size_t)(const void *)(("Software\\IniFileMapping\\") + 1) - (size_t)(const void *)("Software\\IniFileMapping\\") == 1) && strlen ("Software\\IniFileMapping\\") + 1 <= 8 ? __strc py_small (fullname, __extension__ (((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0]), __extension__ (((__const unsigned char *) (__con st char *) ("Software\\IniFileMapping\\"))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4]), __extension__ (((((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 3] << 8 | ((__const  unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[0]),  __extension__ (((((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\ IniFileMapping\\"))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("Software\\IniFileMapping\\"))[4]), strlen ("Software\\IniFileMapping\\") + 1) : (char *) memcpy (fullname, "Software\\IniFileMapping\\", strlen ("Software\\IniFileMapping\\" ) + 1)) : strcpy (fullname, "Software\\IniFileMapping\\")));
     strcat(fullname, appname);
     strcat(fullname, "\\");
     strcat(fullname, keyname);
     strcat(fullname, "\\");
     strcat(fullname, filename);
     RegSetValueExA(((HKEY) 0x80000002), fullname, 0, 1, (int*)string, strlen(string));
 
 
     free(fullname);
     dbgprintf(" => 0\n");
     return 0;
 }
 
 unsigned int _GetPrivateProfileIntA(const char* appname, const char* keyname, INT default_value, const char* filename)
 {
     return expGetPrivateProfileIntA(appname, keyname, default_value, filename);
 }
 int _GetPrivateProfileStringA(const char* appname, const char* keyname,
         const char* def_val, char* dest, unsigned int len, const char* filename)
 {
     return expGetPrivateProfileStringA(appname, keyname, def_val, dest, len, filename);
 }
 int _WritePrivateProfileStringA(const char* appname, const char* keyname,
         const char* string, const char* filename)
 {
     return expWritePrivateProfileStringA(appname, keyname, string, filename);
 }
 
 
 
 int __attribute__((__stdcall__)) expDefDriverProc(int _private, int id, int msg, int arg1, int arg2)
 {
     dbgprintf("DefDriverProc(0x%x, 0x%x, 0x%x, 0x%x, 0x%x) => 0\n", _private, id, msg, arg1, arg2);
     return 0;
 }
 
 int __attribute__((__stdcall__)) expSizeofResource(int v1, int v2)
 {
     int result=SizeofResource(v1, v2);
     dbgprintf("SizeofResource(0x%x, 0x%x) => %d\n", v1, v2, result);
     return result;
 }
 
 int __attribute__((__stdcall__)) expGetLastError()
 {
     int result=GetLastError();
     dbgprintf("GetLastError() => 0x%x\n", result);
     return result;
 }
 
 void __attribute__((__stdcall__)) expSetLastError(int error)
 {
     dbgprintf("SetLastError(0x%x)\n", error);
     SetLastError(error);
 }
 
 char* expstrrchr(char* string, int value)
 {
     char* result=strrchr(string, value);
     if(result)
         dbgprintf("strrchr(0x%x='%s', %d) => 0x%x='%s'", string, string, value, result, result);
     else
         dbgprintf("strrchr(0x%x='%s', %d) => 0", string, string, value);
     return result;
 }
 
 char* expstrchr(char* string, int value)
 {
     char* result=(__extension__ (__builtin_constant_p (value) && (value) == '\0' ? (char *) __rawmemchr (string, value) : strchr (string, value)));
     if(result)
         dbgprintf("strchr(0x%x='%s', %d) => 0x%x='%s'", string, string, value, result, result);
     else
         dbgprintf("strchr(0x%x='%s', %d) => 0", string, string, value);
     return result;
 }
 int expstrlen(char* str)
 {
     int result=strlen(str);
     dbgprintf("strlen(0x%x='%s') => %d\n", str, str, result);
     return result;
 }
 int expstrcpy(char* str1, const char* str2)
 {
     int result= (int) (__extension__ (__builtin_constant_p (str2) ? (((size_t)(const void *)((str2) + 1) - (size_t)(const void *)(str2) == 1) && strlen (str2) + 1 <= 8 ? __strcpy_small (str1, __extension__ (((__const unsigned char *) (__const char *) (st r2))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) (str2))[0]), __extension__ (((__const unsigned char *) (__const char *) (str2))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (str2))[4]), __extension__ (((((__const unsigned char  *) (__const char *) (str2))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (str2))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (str2))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (str2))[0]), __extension__ (((((_ _const unsigned char *) (__const char *) (str2))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (str2))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (str2))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) (str2))[4]),  strlen (str2) + 1) : (char *) memcpy (str1, str2, strlen (str2) + 1)) : strcpy (str1, str2)));
     dbgprintf("strcpy(0x%x, 0x%x='%s') => %d\n", str1, str2, str2, result);
     return result;
 }
 int expstrcmp(const char* str1, const char* str2)
 {
     int result=__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (str1) && __builtin_constant_p (str2) && (__s1_len = strlen (str1), __s2_len = strlen (str2), (!((size_t)(const void *)((str1) + 1) - (size_t)(const void *)(str1) == 1) || _ _s1_len >= 4) && (!((size_t)(const void *)((str2) + 1) - (size_t)(const void *)(str2) == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (str1), (__const char *) (str2), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (str1) &&  ((size_t)(const void *)((str1) + 1) - (size_t)(const void *)(str1) == 1) && (__s1_len = strlen (str1), __s1_len < 4) ? (__builtin_constant_p (str2) && ((size_t)(const void *)((str2) + 1) - (size_t)(const void *)(str2) == 1) ? (__extension__ ({ register i nt __result = (((__const unsigned char *) (__const char *) (str1))[0] - ((__const unsigned char *) (__const char *)(str2))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (str1))[1] - ((__const unsigned c har *) (__const char *) (str2))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (str1))[2] - ((__const unsigned char *) (__const char *) (str2))[2]); if (__s1_len > 2 && __result == 0) __result = (((__con st unsigned char *) (__const char *) (str1))[3] - ((__const unsigned char *) (__const char *) (str2))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (str2); register int __result = (((_ _const unsigned char *) (__const char *) (str1))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (str1))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char * ) (__const char *) (str1))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (str1))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (str2) && ((size_t)(const void *)((str2) + 1) - (size_t )(const!
  void *)(str2) == 1) && (__s2_len = strlen (str2), __s2_len < 4) ? (__builtin_constant_p (str1) && ((size_t)(const void *)((str1) + 1) - (size_t)(const void *)(str1) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const c har *) (str1))[0] - ((__const unsigned char *) (__const char *)(str2))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (str1))[1] - ((__const unsigned char *) (__const char *) (str2))[1]); if (__s2_len >  1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (str1))[2] - ((__const unsigned char *) (__const char *) (str2))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (str1))[3] - (( __const unsigned char *) (__const char *) (str2))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (str1); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (s tr2))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (str2))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (str2))[2]); if (__s2_len  > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (str2))[3]); } } __result; }))) : strcmp (str1, str2)))); });
     dbgprintf("strcmp(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result);
     return result;
 }
 int expstrcat(char* str1, const char* str2)
 {
     int result= (int) strcat(str1, str2);
     dbgprintf("strcat(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result);
     return result;
 }
 int expisalnum(int c)
 {
     int result= (int) (__ctype_b[(int) ((c))] & (unsigned short int) _ISalnum);
     dbgprintf("isalnum(0x%x='%c' => %d\n", c, c, result);
     return result;
 }
 int expmemmove(void* dest, void* src, int n)
 {
     int result= (int) memmove(dest, src, n);
     dbgprintf("memmove(0x%x, 0x%x, %d) => %d\n", dest, src, n, result);
     return result;
 }
 int expmemcmp(void* dest, void* src, int n)
 {
     int result=memcmp(dest, src, n);
     dbgprintf("memcmp(0x%x, 0x%x, %d) => %d\n", dest, src, n, result);
     return result;
 }
 void *expmemcpy(void* dest, void* src, int n)
 {
     void *result=memcpy(dest, src, n);
     dbgprintf("memcpy(0x%x, 0x%x, %d) => %p\n", dest, src, n, result);
     return result;
 }
 time_t exptime(time_t* t)
 {
     time_t result=time(t);
     dbgprintf("time(0x%x) => %d\n", t, result);
     return result;
 }
 
 int __attribute__((__stdcall__)) expStringFromGUID2(GUID* guid, char* str, int cbMax)
 {
     int result=snprintf(str, cbMax, "%.8lx-%.4x-%.4x-%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x",
      guid->f1, guid->f2, guid->f3,
      (unsigned char)guid->f4[0], (unsigned char)guid->f4[1], (unsigned char)guid->f4[2], (unsigned char)guid->f4[3],
      (unsigned char)guid->f4[4], (unsigned char)guid->f4[5], (unsigned char)guid->f4[6], (unsigned char)guid->f4[7]);
     dbgprintf("StringFromGUID2(0x%x, 0x%x='%s', %d) => %d\n", guid, str, str, cbMax, result);
     return result;
 }
 
 
 int __attribute__((__stdcall__)) expGetFileVersionInfoSizeA(const char* name, int* lpHandle)
 {
     dbgprintf("GetFileVersionInfoSizeA(0x%x='%s', 0x%X) => 0\n", name, name, lpHandle);
     return 0;
 }
 
 int __attribute__((__stdcall__)) expIsBadStringPtrW(const short* string, int nchars)
 {
     int result;
     if(string==0)result=1; else result=0;
     dbgprintf("IsBadStringPtrW(0x%x, %d) => %d", string, nchars, result);
     if(string)wch_print(string);
     return result;
 }
 
 int __attribute__((__stdcall__)) expIsBadStringPtrA(const char* string, int nchars)
 {
     int result=0;
 
 
 
     return result;
 }
 
 extern long __attribute__((__stdcall__)) InterlockedExchangeAdd( long* dest, long incr )
 {
     long ret;
     __asm__ __volatile__( "lock; xaddl %0,(%1)"
                           : "=r" (ret) : "r" (dest), "0" (incr) : "memory" );
     return ret;
 }
 
 extern long __attribute__((__stdcall__)) expInterlockedIncrement( long* dest )
 {
     long result=InterlockedExchangeAdd( dest, 1 ) + 1;
     dbgprintf("InterlockedIncrement(0x%x => %d) => %d\n", dest, *dest, result);
     return result;
 }
 extern long __attribute__((__stdcall__)) expInterlockedDecrement( long* dest )
 {
     long result=InterlockedExchangeAdd( dest, -1 ) - 1;
     dbgprintf("InterlockedDecrement(0x%x => %d) => %d\n", dest, *dest, result);
     return result;
 }
 
 extern void __attribute__((__stdcall__)) expOutputDebugStringA( const char* string )
 {
     dbgprintf("OutputDebugStringA(0x%x='%s')\n", string);
     fprintf(stderr, "DEBUG: %s\n", string);
 }
 
 int __attribute__((__stdcall__)) expGetDC(int hwnd)
 {
     dbgprintf("GetDC(0x%x) => 0\n", hwnd);
     return 0;
 }
 
 int __attribute__((__stdcall__)) expGetDesktopWindow()
 {
     dbgprintf("GetDesktopWindow() => 0\n");
     return 0;
 }
 
 int __attribute__((__stdcall__)) expReleaseDC(int hwnd, int hdc)
 {
     dbgprintf("ReleaseDC(0x%x, 0x%x) => 0\n", hwnd, hdc);
     return 0;
 }
 static int cursor[100];
 
 int __attribute__((__stdcall__)) expLoadCursorA(int handle,LPCSTR name)
 {
   dbgprintf("LoadCursorA(%d, 0x%x='%s') => 0x%x\n", handle, name, (int)&cursor[0]);
   return (int)&cursor[0];
 }
 int __attribute__((__stdcall__)) expSetCursor(void *cursor)
 {
     dbgprintf("SetCursor(0x%x) => 0x%x\n", cursor, cursor);
     return (int)cursor;
 }
 int __attribute__((__stdcall__)) expGetSystemPaletteEntries(int hdc, int iStartIndex, int nEntries, void* lppe)
 {
     dbgprintf("GetSystemPaletteEntries(0x%x, 0x%x, 0x%x, 0x%x) => 0\n",
         hdc, iStartIndex, nEntries, lppe);
     return 0;
 }
 # 2097 "win32.c"
 int __attribute__((__stdcall__)) expGetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation)
 {
     const short name[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'S', 't', 'a',
     'n', 'd', 'a', 'r', 'd', ' ', 'T', 'i', 'm', 'e', 0};
     const short pname[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'D', 'a', 'y',
     'l', 'i', 'g', 'h', 't', ' ', 'T', 'i', 'm', 'e', 0};
     dbgprintf("GetTimeZoneInformation(0x%x) => TIME_ZONE_ID_STANDARD\n");
     (__extension__ (__builtin_constant_p (sizeof(TIME_ZONE_INFORMATION)) && (sizeof(TIME_ZONE_INFORMATION)) <= 16 ? ((sizeof(TIME_ZONE_INFORMATION)) == 1 ? ({ void *__s = (lpTimeZoneInformation); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *_ _s = (lpTimeZoneInformation); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (sizeof(TIME_ZONE_INFORMATION))) { case 15: __u->__ui = __c * 0x01010101; __u = _ _extension__ (void *)((char *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 3: __u->__usi = (unsigned short int ) __c * 0x0101; __u = __extension__ (void *)((char *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ (voi d *)((char *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u  + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0 x01010101; __u = __extension__ (void *)((char *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ (void *)((char *) __u + 4); case 4: __u->__ui = __ c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (lpTimeZoneInformation); __builtin_memset (__s, '\0', sizeof(TIME_ZONE_INFORMATION)); __s; }) : memset (lpTimeZoneInformation, 0, sizeof(TIME_ZONE_INFOR MATION)!
 ))));
     lpTimeZoneInformation->Bias=360;
     memcpy(lpTimeZoneInformation->StandardName, name, sizeof(name));
     lpTimeZoneInformation->StandardDate.wMonth=10;
     lpTimeZoneInformation->StandardDate.wDay=5;
     lpTimeZoneInformation->StandardDate.wHour=2;
     lpTimeZoneInformation->StandardBias=0;
     memcpy(lpTimeZoneInformation->DaylightName, pname, sizeof(pname));
     lpTimeZoneInformation->DaylightDate.wMonth=4;
     lpTimeZoneInformation->DaylightDate.wDay=1;
     lpTimeZoneInformation->DaylightDate.wHour=2;
     lpTimeZoneInformation->DaylightBias=-60;
     return 1;
 }
 
 void __attribute__((__stdcall__)) expGetLocalTime(SYSTEMTIME* systime)
 {
     time_t local_time;
     struct tm *local_tm;
     struct timeval tv;
 
     dbgprintf("GetLocalTime(0x%x)\n");
     gettimeofday(&tv, ((void *)0));
     local_time=tv.tv_sec;
     local_tm=localtime(&local_time);
 
     systime->wYear = local_tm->tm_year + 1900;
     systime->wMonth = local_tm->tm_mon + 1;
     systime->wDayOfWeek = local_tm->tm_wday;
     systime->wDay = local_tm->tm_mday;
     systime->wHour = local_tm->tm_hour;
     systime->wMinute = local_tm->tm_min;
     systime->wSecond = local_tm->tm_sec;
     systime->wMilliseconds = (tv.tv_usec / 1000) % 1000;
     dbgprintf("  Year: %d\n  Month: %d\n  Day of week: %d\n"
     "  Day: %d\n  Hour: %d\n  Minute: %d\n  Second:  %d\n"
     "  Milliseconds: %d\n",
     systime->wYear, systime->wMonth, systime->wDayOfWeek, systime->wDay,
     systime->wHour, systime->wMinute, systime->wSecond, systime->wMilliseconds);
 }
 
 int __attribute__((__stdcall__)) expGetSystemTime(SYSTEMTIME* systime)
 {
     time_t local_time;
     struct tm *local_tm;
     struct timeval tv;
 
     dbgprintf("GetSystemTime(0x%x)\n", systime);
     gettimeofday(&tv, ((void *)0));
     local_time=tv.tv_sec;
     local_tm=gmtime(&local_time);
 
     systime->wYear = local_tm->tm_year + 1900;
     systime->wMonth = local_tm->tm_mon + 1;
     systime->wDayOfWeek = local_tm->tm_wday;
     systime->wDay = local_tm->tm_mday;
     systime->wHour = local_tm->tm_hour;
     systime->wMinute = local_tm->tm_min;
     systime->wSecond = local_tm->tm_sec;
     systime->wMilliseconds = (tv.tv_usec / 1000) % 1000;
     dbgprintf("  Year: %d\n  Month: %d\n  Day of week: %d\n"
     "  Day: %d\n  Hour: %d\n  Minute: %d\n  Second:  %d\n"
     "  Milliseconds: %d\n",
     systime->wYear, systime->wMonth, systime->wDayOfWeek, systime->wDay,
     systime->wHour, systime->wMinute, systime->wSecond, systime->wMilliseconds);
 }
 
 int __attribute__((__stdcall__)) expGetEnvironmentVariableA(const char* name, char* field, int size)
 {
     char *p;
 
     if(field)field[0]=0;
 
 
 
 
     if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (name) && __builtin_constant_p ("__MSVCRT_HEAP_SELECT") && (__s1_len = strlen (name), __s2_len = strlen ("__MSVCRT_HEAP_SELECT"), (!((size_t)(const void *)((name) + 1) - (size_t)(c onst void *)(name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("__MSVCRT_HEAP_SELECT") + 1) - (size_t)(const void *)("__MSVCRT_HEAP_SELECT") == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (name), (__const char *) ("__MSVCRT_HEAP_SELECT"),  (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s1_len = strlen (name), __s1_len < 4) ? (__builtin_constant_p ("__MSVCRT_HEAP_SELECT") && (( size_t)(const void *)(("__MSVCRT_HEAP_SELECT") + 1) - (size_t)(const void *)("__MSVCRT_HEAP_SELECT") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)(" __MSVCRT_HEAP_SELECT"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"))[1]); if (__s1_len > 1 && __result == 0) { __resul t = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const uns igned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"); register int __result = (((__const unsigned char *) (__ const char *) (name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[ 2] - __!
 s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("__MSVCRT_HEAP_SELECT") && ((size_t)(const void *)(("__MSVCRT_HEAP_SELECT") + 1) - (size _t)(const void *)("__MSVCRT_HEAP_SELECT") == 1) && (__s2_len = strlen ("__MSVCRT_HEAP_SELECT"), __s2_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? (__extension__ ({ register int __re sult = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)("__MSVCRT_HEAP_SELECT"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const  unsigned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"))[2]); if (__s 2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsig ned char *) (__const char *) (name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("__MS VCRT_HEAP_SELECT"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("__MSVCRT_HEAP_SELECT"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const ch ar *) ("__MSVCRT_HEAP_SELECT"))[3]); } } __result; }))) : strcmp (name, "__MSVCRT_HEAP_SELECT")))); })==0)
        (__extension__ (__builtin_constant_p ("__GLOBAL_HEAP_SELECTED,1") ? (((size_t)(const void *)(("__GLOBAL_HEAP_SELECTED,1") + 1) - (size_t)(const void *)("__GLOBAL_HEAP_SELECTED,1") == 1) && strlen ("__GLOBAL_HEAP_SELECTED,1") + 1 <= 8 ? __strcpy_sm all (field, __extension__ (((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[0]), __extension__ (((__const unsigned char *) (__const char *) ( "__GLOBAL_HEAP_SELECTED,1"))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[4]), __extension__ (((((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[0 + 3] << 8 | ((__const unsigned char *)  (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[0]), __extension__ (((((__con st unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[4 + 1]) <<  8 | ((__const unsigned char *) (__const char *) ("__GLOBAL_HEAP_SELECTED,1"))[4]), strlen ("__GLOBAL_HEAP_SELECTED,1") + 1) : (char *) memcpy (field, "__GLOBAL_HEAP_SELECTED,1", strlen ("__GLOBAL_HEAP_SELECTED,1") + 1)) : strcpy (field, "__GLOBAL_HEAP_S ELECTED,1")));
     dbgprintf("GetEnvironmentVariableA(0x%x='%s', 0x%x, %d) => %d\n", name, name, field, size, strlen(field));
     return strlen(field);
 }
 
 void* __attribute__((__stdcall__)) expCoTaskMemAlloc(ULONG cb)
 {
     return my_mreq(cb, 0);
 }
 void __attribute__((__stdcall__)) expCoTaskMemFree(void* cb)
 {
     my_release(cb);
 }
 
 void* CoTaskMemAlloc(ULONG cb){return expCoTaskMemAlloc(cb);}
 void CoTaskMemFree(void* cb){expCoTaskMemFree(cb);}
 
 struct COM_OBJECT_INFO
 {
     GUID clsid;
     long (*GetClassObject) (GUID* clsid, GUID* iid, void** ppv);
 };
 
 static struct COM_OBJECT_INFO* com_object_table=0;
 static int com_object_size=0;
 int RegisterComClass(GUID* clsid, GETCLASSOBJECT gcs)
 {
     if(!clsid)return -1;
     if(!gcs)return -1;
     com_object_table=realloc(com_object_table, sizeof(struct COM_OBJECT_INFO)*(++com_object_size));
     com_object_table[com_object_size-1].clsid=*clsid;
     com_object_table[com_object_size-1].GetClassObject=gcs;
     return 0;
 }
 
 GUID IID_IUnknown={0x00000000, 0x0000, 0x0000,
     {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
 GUID IID_IClassFactory={0x00000001, 0x0000, 0x0000,
     {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
 
 long __attribute__((__stdcall__)) expCoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
                     long dwClsContext, GUID* riid, void** ppv)
 {
     int i;
     struct COM_OBJECT_INFO* ci=0;
     for(i=0; i<com_object_size; i++)
         if(!memcmp(rclsid, &com_object_table[i].clsid, sizeof(GUID)))
             ci=&com_object_table[i];
     if(!ci)return 0x80040154;
 
     i=ci->GetClassObject(rclsid, riid, ppv);
     return i;
 }
 
 long CoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
                     long dwClsContext, GUID* riid, void** ppv)
 {
     return expCoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv);
 }
 
 int __attribute__((__stdcall__))
  expIsRectEmpty(
 const RECT *lprc)
 {
     dbgprintf("IsRectEmpty(0x%x)");
     if((!lprc) || (lprc->right==lprc->left) || (lprc->top==lprc->bottom))
     {
         dbgprintf(" => TRUE\n");
         return 1;
     }
     dbgprintf(" => FALSE\n");
     return 0;
 }
 
 int _adjust_fdiv=0;
 
 
 
 
 unsigned int __attribute__((__stdcall__)) expGetTempPathA(unsigned int len, char* path)
 {
     dbgprintf("GetTempPathA(%d, 0x%x)", len, path);
     if(len<5)
     {
         dbgprintf(" => 0\n");
         return 0;
     }
     (__extension__ (__builtin_constant_p ("/tmp") ? (((size_t)(const void *)(("/tmp") + 1) - (size_t)(const void *)("/tmp") == 1) && strlen ("/tmp") + 1 <= 8 ? __strcpy_small (path, __extension__ (((__const unsigned char *) (__const char *) ("/tmp"))[0 +  1] << 8 | ((__const unsigned char *) (__const char *) ("/tmp"))[0]), __extension__ (((__const unsigned char *) (__const char *) ("/tmp"))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) ("/tmp"))[4]), __extension__ (((((__const unsigned char * ) (__const char *) ("/tmp"))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) ("/tmp"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("/tmp"))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("/tmp"))[0]), __extension__  (((((__const unsigned char *) (__const char *) ("/tmp"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) ("/tmp"))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("/tmp"))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) ( "/tmp"))[4]), strlen ("/tmp") + 1) : (char *) memcpy (path, "/tmp", strlen ("/tmp") + 1)) : strcpy (path, "/tmp")));
     dbgprintf(" => 5 ( '/tmp' )\n");
     return 5;
 }
 # 2289 "win32.c"
 HANDLE __attribute__((__stdcall__)) expFindFirstFileA(LPCSTR s, LPWIN32_FIND_DATAA lpfd)
 {
     dbgprintf("FindFirstFileA(0x%x='%s', 0x%x) => 0\n", s, s, lpfd);
     (__extension__ (__builtin_constant_p ("msms001.vwp") ? (((size_t)(const void *)(("msms001.vwp") + 1) - (size_t)(const void *)("msms001.vwp") == 1) && strlen ("msms001.vwp") + 1 <= 8 ? __strcpy_small (lpfd->cFileName, __extension__ (((__const unsigned  char *) (__const char *) ("msms001.vwp"))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[0]), __extension__ (((__const unsigned char *) (__const char *) ("msms001.vwp"))[4 + 1] << 8 | ((__const unsigned char *) (__const char  *) ("msms001.vwp"))[4]), __extension__ (((((__const unsigned char *) (__const char *) ("msms001.vwp"))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[ 0 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[0]), __extension__ (((((__const unsigned char *) (__const char *) ("msms001.vwp"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[4 + 2]) << 8 | ((__c onst unsigned char *) (__const char *) ("msms001.vwp"))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[4]), strlen ("msms001.vwp") + 1) : (char *) memcpy (lpfd->cFileName, "msms001.vwp", strlen ("msms001.vwp") + 1)) : strcpy  (lpfd->cFileName, "msms001.vwp")));
     (__extension__ (__builtin_constant_p ("msms001.vwp") ? (((size_t)(const void *)(("msms001.vwp") + 1) - (size_t)(const void *)("msms001.vwp") == 1) && strlen ("msms001.vwp") + 1 <= 8 ? __strcpy_small (lpfd->cAlternateFileName, __extension__ (((__const  unsigned char *) (__const char *) ("msms001.vwp"))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[0]), __extension__ (((__const unsigned char *) (__const char *) ("msms001.vwp"))[4 + 1] << 8 | ((__const unsigned char *) (__co nst char *) ("msms001.vwp"))[4]), __extension__ (((((__const unsigned char *) (__const char *) ("msms001.vwp"))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) ("msms00 1.vwp"))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[0]), __extension__ (((((__const unsigned char *) (__const char *) ("msms001.vwp"))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[4 + 2]) <<  8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) ("msms001.vwp"))[4]), strlen ("msms001.vwp") + 1) : (char *) memcpy (lpfd->cAlternateFileName, "msms001.vwp", strlen ("msms001.vwp ") + 1)) : strcpy (lpfd->cAlternateFileName, "msms001.vwp")));
     return (HANDLE)0;
 }
 WIN_BOOL __attribute__((__stdcall__)) expFindNextFileA(HANDLE h,LPWIN32_FIND_DATAA p)
 {
     dbgprintf("FindNextFileA(0x%x, 0x%x) => 0\n", h, p);
     return 0;
 }
 WIN_BOOL __attribute__((__stdcall__)) expFindClose(HANDLE h)
 {
     dbgprintf("FindClose(0x%x) => 0\n", h);
     return 0;
 }
 UINT __attribute__((__stdcall__)) expSetErrorMode(UINT i)
 {
     dbgprintf("SetErrorMode(%d) => 0\n", i);
     return 0;
 }
 UINT __attribute__((__stdcall__)) expGetWindowsDirectoryA(LPSTR s,UINT c)
 {
     char windir[]="c:\\windows";
     int result;
     (__extension__ (__builtin_constant_p (windir) && __builtin_constant_p (c) ? (strlen (windir) + 1 >= ((size_t) (c)) ? (char *) memcpy (s, windir, c) : strncpy (s, windir, c)) : strncpy (s, windir, c)));
     result=1+((c<strlen(windir))?c:strlen(windir));
     dbgprintf("GetWindowsDirectoryA(0x%x, %d) => %d\n", s, c, result);
     return result;
 }
 
 WIN_BOOL __attribute__((__stdcall__)) expDeleteFileA(LPCSTR s)
 {
     dbgprintf("DeleteFileA(0x%x='%s') => 0\n", s, s);
     return 0;
 }
 WIN_BOOL __attribute__((__stdcall__)) expFileTimeToLocalFileTime(const FILETIME* cpf, LPFILETIME pf)
 {
     dbgprintf("FileTimeToLocalFileTime(0x%x, 0x%x) => 0\n", cpf, pf);
     return 0;
 }
 
 UINT __attribute__((__stdcall__)) expGetTempFileNameA(LPCSTR cs1,LPCSTR cs2,UINT i,LPSTR ps)
 {
     char mask[16]="/tmp/AP_XXXXXX";
     int result;
     dbgprintf("GetTempFileNameA(0x%x='%s', 0x%x='%s', %d, 0x%x)", cs1, cs1, cs2, cs2, i, ps);
     if(i && i<10)
     {
         dbgprintf(" => -1\n");
         return -1;
     }
     result=mkstemp(mask);
     sprintf(ps, "AP%d", result);
     dbgprintf(" => %d\n", strlen(ps));
     return strlen(ps);
 }
 
 
 
 
 
 HANDLE __attribute__((__stdcall__)) expCreateFileA(LPCSTR cs1,DWORD i1,DWORD i2,
     LPSECURITY_ATTRIBUTES p1, DWORD i3,DWORD i4,HANDLE i5)
 {
     dbgprintf("CreateFileA(0x%x='%s', %d, %d, 0x%x, %d, %d, 0x%x)\n", cs1, cs1, i1,
              i2, p1, i3, i4, i5);
     if((!cs1) || (strlen(cs1)<2))return -1;
     if((__extension__ (__builtin_constant_p (2) && ((__builtin_constant_p (cs1) && strlen (cs1) < ((size_t) (2))) || (__builtin_constant_p ("AP") && strlen ("AP") < ((size_t) (2)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (cs1 ) && __builtin_constant_p ("AP") && (__s1_len = strlen (cs1), __s2_len = strlen ("AP"), (!((size_t)(const void *)((cs1) + 1) - (size_t)(const void *)(cs1) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("AP") + 1) - (size_t)(const void *)("AP") ==  1) || __s2_len >= 4)) ? memcmp ((__const char *) (cs1), (__const char *) ("AP"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (cs1) && ((size_t)(const void *)((cs1) + 1) - (size_t)(const void *)(cs1) == 1) && (__s1_len = strle n (cs1), __s1_len < 4) ? (__builtin_constant_p ("AP") && ((size_t)(const void *)(("AP") + 1) - (size_t)(const void *)("AP") == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (cs1))[0] - ((__const unsigned char  *) (__const char *)("AP"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (cs1))[1] - ((__const unsigned char *) (__const char *) ("AP"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const  unsigned char *) (__const char *) (cs1))[2] - ((__const unsigned char *) (__const char *) ("AP"))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (cs1))[3] - ((__const unsigned char *) (__const char *) ("AP "))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("AP"); register int __result = (((__const unsigned char *) (__const char *) (cs1))[0] - __s2[0]); if (__s1_len > 0 && __result == 0)  { __result = (((__const unsigned char *) (__const char *) (cs1))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (cs1))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const un signed !
 char *) (__const char *) (cs1))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("AP") && ((size_t)(const void *)(("AP") + 1) - (size_t)(const void *)("AP") == 1) && (__s2_len = strlen ("AP"), __s2_len < 4) ? (__builtin_constant_p (cs1) && ((si ze_t)(const void *)((cs1) + 1) - (size_t)(const void *)(cs1) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (cs1))[0] - ((__const unsigned char *) (__const char *)("AP"))[0]); if (__s2_len > 0 && __result = = 0) { __result = (((__const unsigned char *) (__const char *) (cs1))[1] - ((__const unsigned char *) (__const char *) ("AP"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (cs1))[2] - ((__const unsigne d char *) (__const char *) ("AP"))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (cs1))[3] - ((__const unsigned char *) (__const char *) ("AP"))[3]); } } __result; })) : (__extension__ ({ __const unsigned  char *__s1 = (__const unsigned char *) (__const char *) (cs1); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("AP"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char  *) ("AP"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("AP"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("AP"))[3]); } } __re sult; }))) : strcmp (cs1, "AP")))); }) : strncmp (cs1, "AP", 2))))
     {
         int result;
         char* tmp=(char*)malloc(strlen(def_path)+50);
         (__extension__ (__builtin_constant_p (def_path) ? (((size_t)(const void *)((def_path) + 1) - (size_t)(const void *)(def_path) == 1) && strlen (def_path) + 1 <= 8 ? __strcpy_small (tmp, __extension__ (((__const unsigned char *) (__const char *) (d ef_path))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) (def_path))[0]), __extension__ (((__const unsigned char *) (__const char *) (def_path))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (def_path))[4]), __extension__ (((((__co nst unsigned char *) (__const char *) (def_path))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (def_path))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (def_path))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (def _path))[0]), __extension__ (((((__const unsigned char *) (__const char *) (def_path))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (def_path))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (def_path))[4 + 1]) << 8 | ((__const un signed char *) (__const char *) (def_path))[4]), strlen (def_path) + 1) : (char *) memcpy (tmp, def_path, strlen (def_path) + 1)) : strcpy (tmp, def_path)));
         strcat(tmp, "/");
         strcat(tmp, "APmpg4v1.apl");
         result=open(tmp, 00);
         free(tmp);
         return result;
     };
     return atoi(cs1+2);
 }
 static char sysdir[]=".";
 LPCSTR __attribute__((__stdcall__)) expGetSystemDirectoryA()
 {
     dbgprintf("GetSystemDirectoryA() => 0x%x='%s'\n", sysdir, sysdir);
     return sysdir;
 }
 WIN_BOOL __attribute__((__stdcall__)) expReadFile(HANDLE h,LPVOID pv,DWORD size,LPDWORD rd,LPOVERLAPPED unused)
 {
     int result;
     dbgprintf("ReadFile(%d, 0x%x, %d -> 0x%x)\n", h, pv, size, rd);
     result=read(h, pv, size);
     if(rd)*rd=result;
     if(!result)return 0;
     return 1;
 }
 
 WIN_BOOL __attribute__((__stdcall__)) expWriteFile(HANDLE h,LPCVOID pv,DWORD size,LPDWORD wr,LPOVERLAPPED unused)
 {
     int result;
     dbgprintf("WriteFile(%d, 0x%x, %d -> 0x%x)\n", h, pv, size, wr);
     if(h==1234)h=1;
     result=write(h, pv, size);
     if(wr)*wr=result;
     if(!result)return 0;
     return 1;
 }
 DWORD __attribute__((__stdcall__)) expSetFilePointer(HANDLE h, LONG val, LPLONG ext, DWORD whence)
 {
     int wh;
     dbgprintf("SetFilePointer(%d, %d, 0x%x, %d)\n", h, val, ext, whence);
 
     switch(whence)
     {
     case 0:
         wh=0;break;
     case 2:
         wh=2;break;
     case 1:
         wh=1;break;
     default:
         return -1;
     }
     return lseek(h, val, wh);
 }
 
 HDRVR __attribute__((__stdcall__)) expOpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName,
                              LPARAM lParam2)
 {
     dbgprintf("OpenDriverA(0x%x='%s', 0x%x='%s', 0x%x) => -1\n", szDriverName, szDriverName, szSectionName, szSectionName, lParam2);
     return -1;
 }
 HDRVR __attribute__((__stdcall__)) expOpenDriver(LPCSTR szDriverName, LPCSTR szSectionName,
                              LPARAM lParam2)
 {
     dbgprintf("OpenDriver(0x%x='%s', 0x%x='%s', 0x%x) => -1\n", szDriverName, szDriverName, szSectionName, szSectionName, lParam2);
     return -1;
 }
 
 
 WIN_BOOL
  __attribute__((__stdcall__))
  expGetProcessAffinityMask(
     HANDLE hProcess,
     LPDWORD lpProcessAffinityMask,
     LPDWORD lpSystemAffinityMask
     )
 {
     dbgprintf("GetProcessAffinityMask(0x%x, 0x%x, 0x%x) => 1\n",
         hProcess, lpProcessAffinityMask, lpSystemAffinityMask);
     if(lpProcessAffinityMask)*lpProcessAffinityMask=1;
     if(lpSystemAffinityMask)*lpSystemAffinityMask=1;
     return 1;
 }
 
 
 
 
 
  DWORD __attribute__((__stdcall__)) expRegEnumValueA( HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count,
                              LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count )
 {
 
 
 
 
 
  return RegEnumValueA(hkey, index, value, val_count,
                          reserved, type, data, count);
 
 }
 # 2470 "win32.c"
 int __attribute__((__stdcall__)) expMulDiv(int nNumber, int nNumerator, int nDenominator)
 {
     static const long long max_int=0x7FFFFFFFLL;
     static const long long min_int=-0x80000000LL;
     long long tmp=(long long)nNumber*(long long)nNumerator;
     if(!nDenominator)return 1;
     tmp/=nDenominator;
     if(tmp<min_int) return 1;
     if(tmp>max_int) return 1;
     return (int)tmp;
 }
 
 LONG __attribute__((__stdcall__)) explstrcmpiA(const char* str1, const char* str2)
 {
     LONG result=strcasecmp(str1, str2);
     dbgprintf("strcmpi(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result);
     return result;
 }
 
 LONG __attribute__((__stdcall__)) explstrlenA(const char* str1)
 {
     LONG result=strlen(str1);
     dbgprintf("strlen(0x%x='%s') => %d\n", str1, str1, result);
     return result;
 }
 
 LONG __attribute__((__stdcall__)) explstrcpyA(char* str1, const char* str2)
 {
     int result= (int) (__extension__ (__builtin_constant_p (str2) ? (((size_t)(const void *)((str2) + 1) - (size_t)(const void *)(str2) == 1) && strlen (str2) + 1 <= 8 ? __strcpy_small (str1, __extension__ (((__const unsigned char *) (__const char *) (st r2))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) (str2))[0]), __extension__ (((__const unsigned char *) (__const char *) (str2))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (str2))[4]), __extension__ (((((__const unsigned char  *) (__const char *) (str2))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (str2))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (str2))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (str2))[0]), __extension__ (((((_ _const unsigned char *) (__const char *) (str2))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (str2))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (str2))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) (str2))[4]),  strlen (str2) + 1) : (char *) memcpy (str1, str2, strlen (str2) + 1)) : strcpy (str1, str2)));
     dbgprintf("strcpy(0x%x, 0x%x='%s') => %d\n", str1, str2, str2, result);
     return result;
 }
 
 LONG __attribute__((__stdcall__)) expInterlockedExchange(long *dest, long l)
 {
         long retval;
         retval = *dest;
         *dest = l;
         return retval;
 }
 
 int __attribute__((__stdcall__)) expUnknownMFC42_1176()
 {
     dbgprintf("MFC42:1176\n");
     return 0;
 }
 
 int __attribute__((__stdcall__)) expUnknownMFC42_1243()
 {
     dbgprintf("MFC42:1243\n");
     return 0;
 }
 
 int UnregisterComClass(GUID* clsid, GETCLASSOBJECT gcs)
 {
     int found = 0;
     int i = 0;
     if(!clsid || !gcs)
         return -1;
 
     if (com_object_table == 0)
         printf("Warning: UnregisterComClass() called without any registered class\n");
     while (i < com_object_size)
     {
         if (found && i > 0)
         {
             memcpy(&com_object_table[i - 1].clsid,
                    &com_object_table[i].clsid, sizeof(GUID));
             com_object_table[i - 1].GetClassObject =
                 com_object_table[i].GetClassObject;
         }
         else if (memcmp(&com_object_table[i].clsid, clsid, sizeof(GUID)) == 0
                  && com_object_table[i].GetClassObject == gcs)
         {
             found++;
         }
         i++;
     }
     if (found)
     {
         if (--com_object_size == 0)
         {
             free(com_object_table);
             com_object_table = 0;
         }
     }
     return 0;
 }
 
 
 
 
 struct exports
 {
     char name[64];
     int id;
     void* func;
 };
 struct libs
 {
     char name[64];
     int length;
     struct exports* exps;
 };
 
 
 
 
 struct exports exp_kernel32[]={
 {"IsBadWritePtr", 357, (void*)expIsBadWritePtr},
 {"IsBadReadPtr", 354, (void*)expIsBadReadPtr},
 {"IsBadStringPtrW", -1, (void*)expIsBadStringPtrW},
 {"IsBadStringPtrA", -1, (void*)expIsBadStringPtrA},
 {"DisableThreadLibraryCalls", -1, (void*)expDisableThreadLibraryCalls},
 {"CreateThread", -1, (void*)expCreateThread},
 {"CreateEventA", -1, (void*)expCreateEventA},
 {"SetEvent", -1, (void*)expSetEvent},
 {"ResetEvent", -1, (void*)expResetEvent},
 {"WaitForSingleObject", -1, (void*)expWaitForSingleObject},
 {"GetSystemInfo", -1, (void*)expGetSystemInfo},
 {"GetVersion", 332, (void*)expGetVersion},
 {"HeapCreate", 461, (void*)expHeapCreate},
 {"HeapAlloc", -1, (void*)expHeapAlloc},
 {"HeapDestroy", -1, (void*)expHeapDestroy},
 {"HeapFree", -1, (void*)expHeapFree},
 {"HeapSize", -1, (void*)expHeapSize},
 {"GetProcessHeap", -1, (void*)expGetProcessHeap},
 {"VirtualAlloc", -1, (void*)expVirtualAlloc},
 {"VirtualFree", -1, (void*)expVirtualFree},
 {"InitializeCriticalSection", -1, (void*)expInitializeCriticalSection},
 {"EnterCriticalSection", -1, (void*)expEnterCriticalSection},
 {"LeaveCriticalSection", -1, (void*)expLeaveCriticalSection},
 {"DeleteCriticalSection", -1, (void*)expDeleteCriticalSection},
 {"TlsAlloc", -1, (void*)expTlsAlloc},
 {"TlsFree", -1, (void*)expTlsFree},
 {"TlsGetValue", -1, (void*)expTlsGetValue},
 {"TlsSetValue", -1, (void*)expTlsSetValue},
 {"GetCurrentThreadId", -1, (void*)expGetCurrentThreadId},
 {"GetCurrentProcess", -1, (void*)expGetCurrentProcess},
 {"LocalAlloc", -1, (void*)expLocalAlloc},
 {"LocalLock", -1, (void*)expLocalLock},
 {"GlobalAlloc", -1, (void*)expGlobalAlloc},
 {"GlobalReAlloc", -1, (void*)expGlobalReAlloc},
 {"GlobalLock", -1, (void*)expGlobalLock},
 {"MultiByteToWideChar", 427, (void*)expMultiByteToWideChar},
 {"WideCharToMultiByte", -1, (void*)expWideCharToMultiByte},
 {"GetVersionExA", -1, (void*)expGetVersionExA},
 {"CreateSemaphoreA", -1, (void*)expCreateSemaphoreA},
 {"QueryPerformanceCounter", -1, (void*)expQueryPerformanceCounter},
 {"QueryPerformanceFrequency", -1, (void*)expQueryPerformanceFrequency},
 {"LocalHandle", -1, (void*)expLocalHandle},
 {"LocalUnlock", -1, (void*)expLocalUnlock},
 {"LocalFree", -1, (void*)expLocalFree},
 {"GlobalHandle", -1, (void*)expGlobalHandle},
 {"GlobalUnlock", -1, (void*)expGlobalUnlock},
 {"GlobalFree", -1, (void*)expGlobalFree},
 {"LoadResource", -1, (void*)expLoadResource},
 {"ReleaseSemaphore", -1, (void*)expReleaseSemaphore},
 {"FindResourceA", -1, (void*)expFindResourceA},
 {"LockResource", -1, (void*)expLockResource},
 {"FreeResource", -1, (void*)expFreeResource},
 {"SizeofResource", -1, (void*)expSizeofResource},
 {"CloseHandle", -1, (void*)expCloseHandle},
 {"GetCommandLineA", -1, (void*)expGetCommandLineA},
 {"GetEnvironmentStringsW", -1, (void*)expGetEnvironmentStringsW},
 {"FreeEnvironmentStringsW", -1, (void*)expFreeEnvironmentStringsW},
 {"FreeEnvironmentStringsA", -1, (void*)expFreeEnvironmentStringsA},
 {"GetEnvironmentStrings", -1, (void*)expGetEnvironmentStrings},
 {"GetStartupInfoA", -1, (void*)expGetStartupInfoA},
 {"GetStdHandle", -1, (void*)expGetStdHandle},
 {"GetFileType", -1, (void*)expGetFileType},
 {"SetHandleCount", -1, (void*)expSetHandleCount},
 {"GetACP", -1, (void*)expGetACP},
 {"GetModuleFileNameA", -1, (void*)expGetModuleFileNameA},
 {"SetUnhandledExceptionFilter", -1, (void*)expSetUnhandledExceptionFilter},
 {"LoadLibraryA", -1, (void*)expLoadLibraryA},
 {"GetProcAddress", -1, (void*)expGetProcAddress},
 {"FreeLibrary", -1, (void*)expFreeLibrary},
 {"CreateFileMappingA", -1, (void*)expCreateFileMappingA},
 {"OpenFileMappingA", -1, (void*)expOpenFileMappingA},
 {"MapViewOfFile", -1, (void*)expMapViewOfFile},
 {"UnmapViewOfFile", -1, (void*)expUnmapViewOfFile},
 {"Sleep", -1, (void*)expSleep},
 {"GetModuleHandleA", -1, (void*)expGetModuleHandleA},
 {"GetProfileIntA", -1, (void*)expGetProfileIntA},
 {"GetPrivateProfileIntA", -1, (void*)expGetPrivateProfileIntA},
 {"GetPrivateProfileStringA", -1, (void*)expGetPrivateProfileStringA},
 {"WritePrivateProfileStringA", -1, (void*)expWritePrivateProfileStringA},
 {"GetLastError", -1, (void*)expGetLastError},
 {"SetLastError", -1, (void*)expSetLastError},
 {"InterlockedIncrement", -1, (void*)expInterlockedIncrement},
 {"InterlockedDecrement", -1, (void*)expInterlockedDecrement},
 {"GetTimeZoneInformation", -1, (void*)expGetTimeZoneInformation},
 {"OutputDebugStringA", -1, (void*)expOutputDebugStringA},
 {"GetLocalTime", -1, (void*)expGetLocalTime},
 {"GetSystemTime", -1, (void*)expGetSystemTime},
 {"GetEnvironmentVariableA", -1, (void*)expGetEnvironmentVariableA},
 {"RtlZeroMemory", -1, (void*)expRtlZeroMemory},
 {"RtlMoveMemory", -1, (void*)expRtlMoveMemory},
 {"RtlFillMemory", -1, (void*)expRtlFillMemory},
 {"GetTempPathA", -1, (void*)expGetTempPathA},
 {"FindFirstFileA", -1, (void*)expFindFirstFileA},
 {"FindNextFileA", -1, (void*)expFindNextFileA},
 {"FindClose", -1, (void*)expFindClose},
 {"FileTimeToLocalFileTime", -1, (void*)expFileTimeToLocalFileTime},
 {"DeleteFileA", -1, (void*)expDeleteFileA},
 {"ReadFile", -1, (void*)expReadFile},
 {"WriteFile", -1, (void*)expWriteFile},
 {"SetFilePointer", -1, (void*)expSetFilePointer},
 {"GetTempFileNameA", -1, (void*)expGetTempFileNameA},
 {"CreateFileA", -1, (void*)expCreateFileA},
 {"GetSystemDirectoryA", -1, (void*)expGetSystemDirectoryA},
 {"GetWindowsDirectoryA", -1, (void*)expGetWindowsDirectoryA},
 {"SetErrorMode", -1, (void*)expSetErrorMode},
 {"IsProcessorFeaturePresent", -1, (void*)expIsProcessorFeaturePresent},
 {"GetProcessAffinityMask", -1, (void*)expGetProcessAffinityMask},
 {"InterlockedExchange", -1, (void*)expInterlockedExchange},
 {"MulDiv", -1, (void*)expMulDiv},
 {"lstrcmpiA", -1, (void*)explstrcmpiA},
 {"lstrlenA", -1, (void*)explstrlenA},
 {"lstrcpyA", -1, (void*)explstrcpyA},
 };
 
 struct exports exp_msvcrt[]={
 {"malloc", -1, (void*)expmalloc},
 {"_initterm", -1, (void*)exp_initterm},
 {"free", -1, (void*)expfree},
 {"??3@YAXPAX@Z", -1, expdelete},
 {"??2@YAPAXI@Z", -1, expnew},
 {"_adjust_fdiv", -1, (void*)&_adjust_fdiv},
 {"strrchr", -1, (void*)expstrrchr},
 {"strchr", -1, (void*)expstrchr},
 {"strlen", -1, (void*)expstrlen},
 {"strcpy", -1, (void*)expstrcpy},
 {"strcmp", -1, (void*)expstrcmp},
 {"strcat", -1, (void*)expstrcat},
 {"isalnum", -1, (void*)expisalnum},
 {"memmove", -1, (void*)expmemmove},
 {"memcmp", -1, (void*)expmemcmp},
 {"time", -1, (void*)exptime},
 };
 struct exports exp_winmm[]={
 {"GetDriverModuleHandle", -1, (void*)expGetDriverModuleHandle},
 {"timeGetTime", -1, (void*)exptimeGetTime},
 {"DefDriverProc", -1, (void*)expDefDriverProc},
 {"OpenDriverA", -1, (void*)expOpenDriverA},
 {"OpenDriver", -1, (void*)expOpenDriver},
 };
 struct exports exp_user32[]={
 {"LoadStringA", -1, (void*)expLoadStringA},
 {"wsprintfA", -1, (void*)expwsprintfA},
 {"GetDC", -1, (void*)expGetDC},
 {"GetDesktopWindow", -1, (void*)expGetDesktopWindow},
 {"ReleaseDC", -1, (void*)expReleaseDC},
 {"IsRectEmpty", -1, (void*)expIsRectEmpty},
 {"LoadCursorA", -1, (void*)expLoadCursorA},
 {"SetCursor", -1, (void*)expSetCursor},
 };
 struct exports exp_advapi32[]={
 {"RegOpenKeyA", -1, (void*)expRegOpenKeyA},
 {"RegOpenKeyExA", -1, (void*)expRegOpenKeyExA},
 {"RegCreateKeyExA", -1, (void*)expRegCreateKeyExA},
 {"RegQueryValueExA", -1, (void*)expRegQueryValueExA},
 {"RegSetValueExA", -1, (void*)expRegSetValueExA},
 {"RegCloseKey", -1, (void*)expRegCloseKey},
 
 };
 struct exports exp_gdi32[]={
 {"CreateCompatibleDC", -1, (void*)expCreateCompatibleDC},
 {"GetDeviceCaps", -1, (void*)expGetDeviceCaps},
 {"DeleteDC", -1, (void*)expDeleteDC},
 {"GetSystemPaletteEntries", -1, (void*)expGetSystemPaletteEntries},
 };
 struct exports exp_version[]={
 {"GetFileVersionInfoSizeA", -1, (void*)expGetFileVersionInfoSizeA},
 };
 struct exports exp_ole32[]={
 {"CoTaskMemAlloc", -1, (void*)expCoTaskMemAlloc},
 {"CoTaskMemFree", -1, (void*)expCoTaskMemFree},
 {"CoCreateInstance", -1, (void*)expCoCreateInstance},
 {"StringFromGUID2", -1, (void*)expStringFromGUID2},
 };
 struct exports exp_mfc42[]={
 {"UnknownMFC42_1176", 1176, (void*)expUnknownMFC42_1176},
 {"UnknownMFC42_1243", 1243, (void*)expUnknownMFC42_1243},
 };
 struct exports exp_crtdll[]={
 {"memcpy", -1, (void*)expmemcpy},
 };
 
 
 
 
 struct libs libraries[]={
 {"kernel32"".dll", sizeof(exp_kernel32)/sizeof(struct exports), exp_kernel32},
 {"msvcrt"".dll", sizeof(exp_msvcrt)/sizeof(struct exports), exp_msvcrt},
 {"winmm"".dll", sizeof(exp_winmm)/sizeof(struct exports), exp_winmm},
 {"user32"".dll", sizeof(exp_user32)/sizeof(struct exports), exp_user32},
 {"advapi32"".dll", sizeof(exp_advapi32)/sizeof(struct exports), exp_advapi32},
 {"gdi32"".dll", sizeof(exp_gdi32)/sizeof(struct exports), exp_gdi32},
 {"version"".dll", sizeof(exp_version)/sizeof(struct exports), exp_version},
 {"ole32"".dll", sizeof(exp_ole32)/sizeof(struct exports), exp_ole32},
 {"mfc42"".dll", sizeof(exp_mfc42)/sizeof(struct exports), exp_mfc42},
 {"crtdll"".dll", sizeof(exp_crtdll)/sizeof(struct exports), exp_crtdll},
 };
 
 void* LookupExternal(const char* library, int ordinal)
 {
     char* answ;
     int i,j;
     if(library==0)
     {
         printf("ERROR: library=0\n");
         return (void*)ext_unknown;
     }
     printf("External func %s:%d\n", library, ordinal);
 
 
     for(i=0; i<sizeof(libraries)/sizeof(struct libs); i++)
     {
         if(strcasecmp(library, libraries[i].name))
             continue;
         for(j=0; j<libraries[i].length; j++)
         {
             if(ordinal!=libraries[i].exps[j].id)
                 continue;
             printf("Hit: 0x%08X\n", libraries[i].exps[j].func);
             return libraries[i].exps[j].func;
         }
     }
     if(pos>150)return 0;
     answ=(char*)extcode+pos*0x64;
     memcpy(answ, &unk_exp1, 0x64);
     *(int*)(answ+9)=pos;
     *(int*)(answ+47)-=((int)answ-(int)&unk_exp1);
     sprintf(export_names[pos], "%s:%d", library, ordinal);
     pos++;
     return (void*)answ;
 }
 
 void* LookupExternalByName(const char* library, const char* name)
 {
     char* answ;
     int i,j;
 
     if(library==0)
     {
         printf("ERROR: library=0\n");
         return (void*)ext_unknown;
     }
     if(name==0)
     {
         printf("ERROR: name=0\n");
         return (void*)ext_unknown;
     }
 
     for(i=0; i<sizeof(libraries)/sizeof(struct libs); i++)
     {
         if(strcasecmp(library, libraries[i].name))
             continue;
         for(j=0; j<libraries[i].length; j++)
         {
             if(__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (name) && __builtin_constant_p (libraries[i].exps[j].name) && (__s1_len = strlen (name), __s2_len = strlen (libraries[i].exps[j].name), (!((size_t)(const void *)((name) + 1)  - (size_t)(const void *)(name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((libraries[i].exps[j].name) + 1) - (size_t)(const void *)(libraries[i].exps[j].name) == 1) || __s2_len >= 4)) ? memcmp ((__const char *) (name), (__const char *) (librar ies[i].exps[j].name), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s1_len = strlen (name), __s1_len < 4) ? (__builtin_constant_p (librari es[i].exps[j].name) && ((size_t)(const void *)((libraries[i].exps[j].name) + 1) - (size_t)(const void *)(libraries[i].exps[j].name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsi gned char *) (__const char *)(libraries[i].exps[j].name))[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[1]); if (__s 1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__ const char *) (name))[3] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[3]); } } __result; })) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (libraries[i].exps[j].name); register  int __result = (((__const unsigned char *) (__const char *) (name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__co nst uns!
 igned char *) (__const char *) (name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (libraries[i].exps[j].name) && ((size_t)(co nst void *)((libraries[i].exps[j].name) + 1) - (size_t)(const void *)(libraries[i].exps[j].name) == 1) && (__s2_len = strlen (libraries[i].exps[j].name), __s2_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const  void *)(name) == 1) ? (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (name))[0] - ((__const unsigned char *) (__const char *)(libraries[i].exps[j].name))[0]); if (__s2_len > 0 && __result == 0) { __result = (((__c onst unsigned char *) (__const char *) (name))[1] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[1]); if (__s2_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (name))[2] - ((__const unsigned  char *) (__const char *) (libraries[i].exps[j].name))[2]); if (__s2_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (name))[3] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[3]); } } __result ; })) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[0]; if (__s2_len > 0 && __result == 0) {  __result = (__s1[1] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[2]); if (__s2_len > 2  && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (libraries[i].exps[j].name))[3]); } } __result; }))) : strcmp (name, libraries[i].exps[j].name)))); }))
                 continue;
 
             return libraries[i].exps[j].func;
         }
     }
 
     if(pos>150)return 0;
     (__extension__ (__builtin_constant_p (name) ? (((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && strlen (name) + 1 <= 8 ? __strcpy_small (export_names[pos], __extension__ (((__const unsigned char *) (__const char *) (name))[ 0 + 1] << 8 | ((__const unsigned char *) (__const char *) (name))[0]), __extension__ (((__const unsigned char *) (__const char *) (name))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (name))[4]), __extension__ (((((__const unsigned char *) ( __const char *) (name))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (name))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (name))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (name))[0]), __extension__ (((((__cons t unsigned char *) (__const char *) (name))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (name))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (name))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) (name))[4]), strle n (name) + 1) : (char *) memcpy (export_names[pos], name, strlen (name) + 1)) : strcpy (export_names[pos], name)));
     answ=(char*)extcode+pos*0x64;
     memcpy(answ, &unk_exp1, 0x64);
     *(int*)(answ+9)=pos;
     *(int*)(answ+47)-=((int)answ-(int)&unk_exp1);
     pos++;
     return (void*)answ;
 
 
 
 
 
 }
 
 int my_garbagecollection(void)
 {
 
     alc_list* pp,*ppsv;
     mutex_list* pm,*pmsv;
     int unfree,unfreecnt;
     if (mlist != ((void *)0)) {
       pm=mlist;
       for(;pm;) {
         if (pm->prev) pm->prev->next=pm->next;
         if (pm->next) pm->next->prev=pm->prev;
         if (pm == mlist) mlist=pm->prev;
         if (pm->pm) {
                 pthread_mutex_destroy(pm->pm);
                 my_release(pm->pm);
         }
         if (pm->pc) {
                 pthread_cond_destroy(pm->pc);
                 my_release(pm->pc);
         }
         pmsv = pm;
         pm=pm->prev;
         my_release(pmsv);
       }
     }
 
     if (alclist==((void *)0)) return 0;
 
     pp=alclist;
     unfree=unfreecnt=0;
         for(;pp;) {
                 unfree+=pp->size;
                 unfreecnt++;
                 if (pp->prev)
                         pp->prev->next=pp->next;
                 if (pp->next)
                         pp->next->prev=pp->prev;
                 if (pp == alclist)
                         alclist=pp->prev;
                 free(pp->addr);
                 ppsv = pp;
                 pp=pp->prev;
                 free(ppsv);
                 alccnt--;
         }
    printf("Total Unfree %d bytes cnt %d [%p,%d]\n",unfree,unfreecnt,alclist,alccnt);
 
 }
 
 
 
 
 **********
 
 
 
 


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-09-27 16:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-27 16:46 c/4415: Internal compiler error in extract_insn, at recog.c:2218 z0001

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).