about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-08 11:24:03 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-08 11:24:03 +0100
commit9d0e59b31c4404b26976e70e4ecf81ad19f7838d (patch)
tree6062093e4753adc2d8c2c15c53bb00abe6318c2d /src
parent1771694ee192253579f5c2d91cc8e19f96669ac5 (diff)
downloadbox64-9d0e59b31c4404b26976e70e4ecf81ad19f7838d.tar.gz
box64-9d0e59b31c4404b26976e70e4ecf81ad19f7838d.zip
Added wrapped libX11
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h2
-rw-r--r--src/wrapped/generated/functions_list.txt100
-rw-r--r--src/wrapped/generated/wrapper.c200
-rw-r--r--src/wrapped/generated/wrapper.h100
-rwxr-xr-xsrc/wrapped/wrappedlibx11.c821
-rwxr-xr-xsrc/wrapped/wrappedlibx11_private.h1093
6 files changed, 2315 insertions, 1 deletions
diff --git a/src/library_list.h b/src/library_list.h
index 021d83ad..e78fc57f 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -8,7 +8,7 @@ GO("librt.so.1", librt)
 GO("libGL.so.1", libgl)
 GO("libGL.so", libgl)
 GO("libGLU.so.1", libglu)
-//GO("libX11.so.6", libx11)
+GO("libX11.so.6", libx11)
 //GO("libasound.so.2", libasound)
 GO("libdl.so.2", libdl)
 GO("libm.so.6", libm)
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index b9230bbe..4a49811e 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -61,6 +61,7 @@
 #() vFfp
 #() vFdd
 #() vFpi
+#() vFpL
 #() vFpp
 #() cFpp
 #() iFEp
@@ -77,6 +78,8 @@
 #() iFpC
 #() iFpu
 #() iFpf
+#() iFpl
+#() iFpL
 #() iFpp
 #() IFEp
 #() CFui
@@ -97,6 +100,7 @@
 #() dFdd
 #() dFdp
 #() dFpp
+#() LFpi
 #() LFpL
 #() pFEp
 #() pFii
@@ -142,11 +146,13 @@
 #() vFfpp
 #() vFddd
 #() vFdpp
+#() vFLpp
 #() vFpii
 #() vFpiu
 #() vFpif
 #() vFpid
 #() vFpip
+#() vFpui
 #() vFppi
 #() vFppu
 #() vFppp
@@ -170,6 +176,8 @@
 #() iFpup
 #() iFpfu
 #() iFpff
+#() iFplp
+#() iFpLp
 #() iFppi
 #() iFppu
 #() iFppL
@@ -194,6 +202,7 @@
 #() fFffp
 #() dFddd
 #() dFddp
+#() LFpii
 #() pFEip
 #() pFEpi
 #() pFEpp
@@ -208,6 +217,7 @@
 #() pFpiL
 #() pFpip
 #() pFpuu
+#() pFpuL
 #() pFppi
 #() pFppu
 #() pFppL
@@ -255,10 +265,12 @@
 #() vFpiii
 #() vFpiip
 #() vFpipp
+#() vFpupp
 #() vFpdii
 #() vFpddd
 #() vFppip
 #() vFppui
+#() vFpppu
 #() vFpppp
 #() cFpiii
 #() iFEupp
@@ -271,16 +283,27 @@
 #() iFuuff
 #() iFuppp
 #() iFpiiu
+#() iFpiiL
 #() iFpiip
+#() iFpiup
+#() iFpipi
 #() iFpipp
 #() iFpCCC
 #() iFpWWu
+#() iFpuip
 #() iFpuup
+#() iFpuLL
 #() iFpupV
 #() iFppii
 #() iFppiu
+#() iFppiL
 #() iFppip
+#() iFppuu
+#() iFppup
+#() iFpplp
+#() iFppLp
 #() iFpppi
+#() iFpppL
 #() iFpppp
 #() IFEpIi
 #() uFuuuu
@@ -288,8 +311,11 @@
 #() uFpuip
 #() uFpuuu
 #() uFpppi
+#() uFpppp
+#() LFpuuu
 #() LFpLLp
 #() pFEupp
+#() pFEpip
 #() pFEppi
 #() pFEppp
 #() pFiiiu
@@ -298,8 +324,11 @@
 #() pFpiii
 #() pFpipp
 #() pFpuii
+#() pFplpp
 #() pFppiL
+#() pFppip
 #() pFppuL
+#() pFppup
 #() pFppLL
 #() pFpppi
 #() pFpppu
@@ -372,11 +401,20 @@
 #() iFpiiii
 #() iFpiiip
 #() iFpiiuu
+#() iFpiipi
 #() iFpipii
 #() iFpippp
 #() iFpCCCC
+#() iFpuuLL
+#() iFpuupp
+#() iFppiip
+#() iFppiup
 #() iFppipi
+#() iFppipp
 #() iFppupi
+#() iFpppii
+#() iFpppiL
+#() iFppppi
 #() iFppppp
 #() IFppIII
 #() uFEppuu
@@ -384,14 +422,21 @@
 #() uFuiiiu
 #() uFpCCCC
 #() uFpuuuu
+#() uFppiip
 #() uFppppp
 #() LFppppp
 #() pFuiiiu
 #() pFuiipp
+#() pFpiiuu
 #() pFpuiii
 #() pFppipi
+#() pFppipp
+#() pFppuuu
 #() pFppuup
+#() pFppLLp
 #() pFpppip
+#() pFpppuu
+#() pFppppp
 #() vFEiiipp
 #() vFiiiiii
 #() vFiiiuil
@@ -440,17 +485,32 @@
 #() vFppupii
 #() vFpppppp
 #() iFEpippi
+#() iFEppppp
 #() iFiiiiii
 #() iFiiiiip
+#() iFuppipp
 #() iFuppppp
+#() iFpiiiii
 #() iFpiiipp
+#() iFppiiuu
 #() iFppIppp
+#() iFppuiii
+#() iFppuiiL
+#() iFppuupp
+#() iFppupip
+#() iFpppipi
+#() iFpppipp
+#() iFppppii
+#() iFpppppi
+#() iFpppppL
+#() iFpppppp
 #() pFEpippp
 #() pFiCiiCi
 #() pFpiiiiu
 #() pFpippip
 #() pFpuuuuu
 #() pFppiiii
+#() pFpppppp
 #() vFiiiiiip
 #() vFiiiiuup
 #() vFiiupuip
@@ -488,11 +548,25 @@
 #() vFudddddd
 #() vFpipipii
 #() vFpddiidd
+#() vFpppiiii
+#() iFEpppppp
 #() iFiiiiiip
+#() iFpiupiii
 #() iFpuuiuui
+#() iFpuppppp
+#() iFppiiuui
+#() iFppiipii
+#() iFppipipi
+#() iFppipppp
+#() iFpppiiii
+#() iFpppiiuu
+#() iFpppiipi
+#() iFppppiii
 #() iFppppdpi
 #() iFppppppp
 #() uFuippppp
+#() pFpppppuu
+#() pFppppppp
 #() vFiiiiuuip
 #() vFiupuiuup
 #() vFiupuuuup
@@ -513,15 +587,21 @@
 #() vFuuuuuuuu
 #() vFuuuuufff
 #() vFffffffff
+#() vFppppiipi
 #() iFEpippppp
 #() iFiiiiiiip
 #() iFiiupiupi
 #() iFuiifpppp
 #() iFpupppppp
 #() iFppIIIppp
+#() iFpppiippp
 #() iFpppipipi
+#() iFpppipppp
+#() iFppppiipi
+#() iFpppppppp
 #() uFuipppppp
 #() pFuiiiuuuu
+#() pFpppuuLLu
 #() vFuiiiiiiii
 #() vFuiiiiiuip
 #() vFuiiiiiuup
@@ -537,10 +617,16 @@
 #() vFuffffffff
 #() vFffuuuufff
 #() vFddddddddd
+#() vFpppppippp
 #() iFiiiiiiiip
 #() iFiiiipiiip
 #() iFdddpppppp
+#() iFppiuiippL
+#() iFpppiiuuii
+#() iFppppppppp
+#() pFEppiiuuLi
 #() pFpiiiiuuuu
+#() pFppiiuuuLL
 #() vFiiiiiiiiiu
 #() vFuiiiiiiiii
 #() vFuiiiiiiuup
@@ -557,6 +643,10 @@
 #() vFuddiiddiip
 #() vFffffffffff
 #() iFiiiiiiiiip
+#() iFpuupiuiipp
+#() iFppppiiuuii
+#() pFppuiipuuii
+#() pFpppppppppp
 #() vFuiiiiiiiiip
 #() vFuiiiiiiiuip
 #() vFuiiiiiiiuup
@@ -568,20 +658,30 @@
 #() vFuuddiiddiip
 #() vFuffffffffff
 #() vFpipipiipiii
+#() iFEppppiiiiuu
 #() iFiiiiiiiiiip
+#() iFppppiiuuiiL
+#() pFEppuiipuuii
 #() vFuuiiiiiiiuip
 #() vFuuiiiiiiiuup
 #() vFuuuuuuuuuuuu
 #() vFffffffffffff
+#() iFpppllipppppp
+#() pFEppiiuuuipii
+#() pFppiiuuuiupLp
 #() vFuiiiiiiiiiuup
 #() vFuuuuuuuuuuuuu
 #() vFuffffffffffff
 #() iFddddpppddpppp
+#() iFpippuuuiipppp
+#() pFppppppppppppp
 #() vFuffiiffiiffiip
 #() vFuddiiddiiddiip
 #() vFuuiiiiuuiiiiiii
 #() vFfffffffffffffff
+#() uFpppppppppppppppp
 #() vFppuiiiiipuiiiiiiii
+#() pFipppppppppppppppppppppp
 #defined(HAVE_LD80BITS) DFD
 #defined(HAVE_LD80BITS) DFDD
 #defined(HAVE_LD80BITS) DFDp
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 3a70fbac..725b76c9 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -94,6 +94,7 @@ typedef void (*vFff_t)(float, float);
 typedef void (*vFfp_t)(float, void*);
 typedef void (*vFdd_t)(double, double);
 typedef void (*vFpi_t)(void*, int32_t);
+typedef void (*vFpL_t)(void*, uintptr_t);
 typedef void (*vFpp_t)(void*, void*);
 typedef int8_t (*cFpp_t)(void*, void*);
 typedef int32_t (*iFEp_t)(x64emu_t*, void*);
@@ -110,6 +111,8 @@ typedef int32_t (*iFpi_t)(void*, int32_t);
 typedef int32_t (*iFpC_t)(void*, uint8_t);
 typedef int32_t (*iFpu_t)(void*, uint32_t);
 typedef int32_t (*iFpf_t)(void*, float);
+typedef int32_t (*iFpl_t)(void*, intptr_t);
+typedef int32_t (*iFpL_t)(void*, uintptr_t);
 typedef int32_t (*iFpp_t)(void*, void*);
 typedef int64_t (*IFEp_t)(x64emu_t*, void*);
 typedef uint8_t (*CFui_t)(uint32_t, int32_t);
@@ -130,6 +133,7 @@ typedef double (*dFdi_t)(double, int32_t);
 typedef double (*dFdd_t)(double, double);
 typedef double (*dFdp_t)(double, void*);
 typedef double (*dFpp_t)(void*, void*);
+typedef uintptr_t (*LFpi_t)(void*, int32_t);
 typedef uintptr_t (*LFpL_t)(void*, uintptr_t);
 typedef void* (*pFEp_t)(x64emu_t*, void*);
 typedef void* (*pFii_t)(int32_t, int32_t);
@@ -175,11 +179,13 @@ typedef void (*vFfff_t)(float, float, float);
 typedef void (*vFfpp_t)(float, void*, void*);
 typedef void (*vFddd_t)(double, double, double);
 typedef void (*vFdpp_t)(double, void*, void*);
+typedef void (*vFLpp_t)(uintptr_t, void*, void*);
 typedef void (*vFpii_t)(void*, int32_t, int32_t);
 typedef void (*vFpiu_t)(void*, int32_t, uint32_t);
 typedef void (*vFpif_t)(void*, int32_t, float);
 typedef void (*vFpid_t)(void*, int32_t, double);
 typedef void (*vFpip_t)(void*, int32_t, void*);
+typedef void (*vFpui_t)(void*, uint32_t, int32_t);
 typedef void (*vFppi_t)(void*, void*, int32_t);
 typedef void (*vFppu_t)(void*, void*, uint32_t);
 typedef void (*vFppp_t)(void*, void*, void*);
@@ -203,6 +209,8 @@ typedef int32_t (*iFpuL_t)(void*, uint32_t, uintptr_t);
 typedef int32_t (*iFpup_t)(void*, uint32_t, void*);
 typedef int32_t (*iFpfu_t)(void*, float, uint32_t);
 typedef int32_t (*iFpff_t)(void*, float, float);
+typedef int32_t (*iFplp_t)(void*, intptr_t, void*);
+typedef int32_t (*iFpLp_t)(void*, uintptr_t, void*);
 typedef int32_t (*iFppi_t)(void*, void*, int32_t);
 typedef int32_t (*iFppu_t)(void*, void*, uint32_t);
 typedef int32_t (*iFppL_t)(void*, void*, uintptr_t);
@@ -227,6 +235,7 @@ typedef float (*fFfff_t)(float, float, float);
 typedef float (*fFffp_t)(float, float, void*);
 typedef double (*dFddd_t)(double, double, double);
 typedef double (*dFddp_t)(double, double, void*);
+typedef uintptr_t (*LFpii_t)(void*, int32_t, int32_t);
 typedef void* (*pFEip_t)(x64emu_t*, int32_t, void*);
 typedef void* (*pFEpi_t)(x64emu_t*, void*, int32_t);
 typedef void* (*pFEpp_t)(x64emu_t*, void*, void*);
@@ -241,6 +250,7 @@ typedef void* (*pFpiu_t)(void*, int32_t, uint32_t);
 typedef void* (*pFpiL_t)(void*, int32_t, uintptr_t);
 typedef void* (*pFpip_t)(void*, int32_t, void*);
 typedef void* (*pFpuu_t)(void*, uint32_t, uint32_t);
+typedef void* (*pFpuL_t)(void*, uint32_t, uintptr_t);
 typedef void* (*pFppi_t)(void*, void*, int32_t);
 typedef void* (*pFppu_t)(void*, void*, uint32_t);
 typedef void* (*pFppL_t)(void*, void*, uintptr_t);
@@ -288,10 +298,12 @@ typedef void (*vFdddd_t)(double, double, double, double);
 typedef void (*vFpiii_t)(void*, int32_t, int32_t, int32_t);
 typedef void (*vFpiip_t)(void*, int32_t, int32_t, void*);
 typedef void (*vFpipp_t)(void*, int32_t, void*, void*);
+typedef void (*vFpupp_t)(void*, uint32_t, void*, void*);
 typedef void (*vFpdii_t)(void*, double, int32_t, int32_t);
 typedef void (*vFpddd_t)(void*, double, double, double);
 typedef void (*vFppip_t)(void*, void*, int32_t, void*);
 typedef void (*vFppui_t)(void*, void*, uint32_t, int32_t);
+typedef void (*vFpppu_t)(void*, void*, void*, uint32_t);
 typedef void (*vFpppp_t)(void*, void*, void*, void*);
 typedef int8_t (*cFpiii_t)(void*, int32_t, int32_t, int32_t);
 typedef int32_t (*iFEupp_t)(x64emu_t*, uint32_t, void*, void*);
@@ -304,16 +316,27 @@ typedef int32_t (*iFuipp_t)(uint32_t, int32_t, void*, void*);
 typedef int32_t (*iFuuff_t)(uint32_t, uint32_t, float, float);
 typedef int32_t (*iFuppp_t)(uint32_t, void*, void*, void*);
 typedef int32_t (*iFpiiu_t)(void*, int32_t, int32_t, uint32_t);
+typedef int32_t (*iFpiiL_t)(void*, int32_t, int32_t, uintptr_t);
 typedef int32_t (*iFpiip_t)(void*, int32_t, int32_t, void*);
+typedef int32_t (*iFpiup_t)(void*, int32_t, uint32_t, void*);
+typedef int32_t (*iFpipi_t)(void*, int32_t, void*, int32_t);
 typedef int32_t (*iFpipp_t)(void*, int32_t, void*, void*);
 typedef int32_t (*iFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
 typedef int32_t (*iFpWWu_t)(void*, uint16_t, uint16_t, uint32_t);
+typedef int32_t (*iFpuip_t)(void*, uint32_t, int32_t, void*);
 typedef int32_t (*iFpuup_t)(void*, uint32_t, uint32_t, void*);
+typedef int32_t (*iFpuLL_t)(void*, uint32_t, uintptr_t, uintptr_t);
 typedef int32_t (*iFpupV_t)(void*, uint32_t, void*, void*);
 typedef int32_t (*iFppii_t)(void*, void*, int32_t, int32_t);
 typedef int32_t (*iFppiu_t)(void*, void*, int32_t, uint32_t);
+typedef int32_t (*iFppiL_t)(void*, void*, int32_t, uintptr_t);
 typedef int32_t (*iFppip_t)(void*, void*, int32_t, void*);
+typedef int32_t (*iFppuu_t)(void*, void*, uint32_t, uint32_t);
+typedef int32_t (*iFppup_t)(void*, void*, uint32_t, void*);
+typedef int32_t (*iFpplp_t)(void*, void*, intptr_t, void*);
+typedef int32_t (*iFppLp_t)(void*, void*, uintptr_t, void*);
 typedef int32_t (*iFpppi_t)(void*, void*, void*, int32_t);
+typedef int32_t (*iFpppL_t)(void*, void*, void*, uintptr_t);
 typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
 typedef int64_t (*IFEpIi_t)(x64emu_t*, void*, int64_t, int32_t);
 typedef uint32_t (*uFuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t);
@@ -321,8 +344,11 @@ typedef uint32_t (*uFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
 typedef uint32_t (*uFpuip_t)(void*, uint32_t, int32_t, void*);
 typedef uint32_t (*uFpuuu_t)(void*, uint32_t, uint32_t, uint32_t);
 typedef uint32_t (*uFpppi_t)(void*, void*, void*, int32_t);
+typedef uint32_t (*uFpppp_t)(void*, void*, void*, void*);
+typedef uintptr_t (*LFpuuu_t)(void*, uint32_t, uint32_t, uint32_t);
 typedef uintptr_t (*LFpLLp_t)(void*, uintptr_t, uintptr_t, void*);
 typedef void* (*pFEupp_t)(x64emu_t*, uint32_t, void*, void*);
+typedef void* (*pFEpip_t)(x64emu_t*, void*, int32_t, void*);
 typedef void* (*pFEppi_t)(x64emu_t*, void*, void*, int32_t);
 typedef void* (*pFEppp_t)(x64emu_t*, void*, void*, void*);
 typedef void* (*pFiiiu_t)(int32_t, int32_t, int32_t, uint32_t);
@@ -331,8 +357,11 @@ typedef void* (*pFuiii_t)(uint32_t, int32_t, int32_t, int32_t);
 typedef void* (*pFpiii_t)(void*, int32_t, int32_t, int32_t);
 typedef void* (*pFpipp_t)(void*, int32_t, void*, void*);
 typedef void* (*pFpuii_t)(void*, uint32_t, int32_t, int32_t);
+typedef void* (*pFplpp_t)(void*, intptr_t, void*, void*);
 typedef void* (*pFppiL_t)(void*, void*, int32_t, uintptr_t);
+typedef void* (*pFppip_t)(void*, void*, int32_t, void*);
 typedef void* (*pFppuL_t)(void*, void*, uint32_t, uintptr_t);
+typedef void* (*pFppup_t)(void*, void*, uint32_t, void*);
 typedef void* (*pFppLL_t)(void*, void*, uintptr_t, uintptr_t);
 typedef void* (*pFpppi_t)(void*, void*, void*, int32_t);
 typedef void* (*pFpppu_t)(void*, void*, void*, uint32_t);
@@ -405,11 +434,20 @@ typedef int32_t (*iFipppi_t)(int32_t, void*, void*, void*, int32_t);
 typedef int32_t (*iFpiiii_t)(void*, int32_t, int32_t, int32_t, int32_t);
 typedef int32_t (*iFpiiip_t)(void*, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t);
+typedef int32_t (*iFpiipi_t)(void*, int32_t, int32_t, void*, int32_t);
 typedef int32_t (*iFpipii_t)(void*, int32_t, void*, int32_t, int32_t);
 typedef int32_t (*iFpippp_t)(void*, int32_t, void*, void*, void*);
 typedef int32_t (*iFpCCCC_t)(void*, uint8_t, uint8_t, uint8_t, uint8_t);
+typedef int32_t (*iFpuuLL_t)(void*, uint32_t, uint32_t, uintptr_t, uintptr_t);
+typedef int32_t (*iFpuupp_t)(void*, uint32_t, uint32_t, void*, void*);
+typedef int32_t (*iFppiip_t)(void*, void*, int32_t, int32_t, void*);
+typedef int32_t (*iFppiup_t)(void*, void*, int32_t, uint32_t, void*);
 typedef int32_t (*iFppipi_t)(void*, void*, int32_t, void*, int32_t);
+typedef int32_t (*iFppipp_t)(void*, void*, int32_t, void*, void*);
 typedef int32_t (*iFppupi_t)(void*, void*, uint32_t, void*, int32_t);
+typedef int32_t (*iFpppii_t)(void*, void*, void*, int32_t, int32_t);
+typedef int32_t (*iFpppiL_t)(void*, void*, void*, int32_t, uintptr_t);
+typedef int32_t (*iFppppi_t)(void*, void*, void*, void*, int32_t);
 typedef int32_t (*iFppppp_t)(void*, void*, void*, void*, void*);
 typedef int64_t (*IFppIII_t)(void*, void*, int64_t, int64_t, int64_t);
 typedef uint32_t (*uFEppuu_t)(x64emu_t*, void*, void*, uint32_t, uint32_t);
@@ -417,14 +455,21 @@ typedef uint32_t (*uFiuuuu_t)(int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef uint32_t (*uFuiiiu_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t);
 typedef uint32_t (*uFpCCCC_t)(void*, uint8_t, uint8_t, uint8_t, uint8_t);
 typedef uint32_t (*uFpuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t);
+typedef uint32_t (*uFppiip_t)(void*, void*, int32_t, int32_t, void*);
 typedef uint32_t (*uFppppp_t)(void*, void*, void*, void*, void*);
 typedef uintptr_t (*LFppppp_t)(void*, void*, void*, void*, void*);
 typedef void* (*pFuiiiu_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t);
 typedef void* (*pFuiipp_t)(uint32_t, int32_t, int32_t, void*, void*);
+typedef void* (*pFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t);
 typedef void* (*pFpuiii_t)(void*, uint32_t, int32_t, int32_t, int32_t);
 typedef void* (*pFppipi_t)(void*, void*, int32_t, void*, int32_t);
+typedef void* (*pFppipp_t)(void*, void*, int32_t, void*, void*);
+typedef void* (*pFppuuu_t)(void*, void*, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFppuup_t)(void*, void*, uint32_t, uint32_t, void*);
+typedef void* (*pFppLLp_t)(void*, void*, uintptr_t, uintptr_t, void*);
 typedef void* (*pFpppip_t)(void*, void*, void*, int32_t, void*);
+typedef void* (*pFpppuu_t)(void*, void*, void*, uint32_t, uint32_t);
+typedef void* (*pFppppp_t)(void*, void*, void*, void*, void*);
 typedef void (*vFEiiipp_t)(x64emu_t*, int32_t, int32_t, int32_t, void*, void*);
 typedef void (*vFiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFiiiuil_t)(int32_t, int32_t, int32_t, uint32_t, int32_t, intptr_t);
@@ -473,17 +518,32 @@ typedef void (*vFppiiii_t)(void*, void*, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFppupii_t)(void*, void*, uint32_t, void*, int32_t, int32_t);
 typedef void (*vFpppppp_t)(void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFEpippi_t)(x64emu_t*, void*, int32_t, void*, void*, int32_t);
+typedef int32_t (*iFEppppp_t)(x64emu_t*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef int32_t (*iFiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, void*);
+typedef int32_t (*iFuppipp_t)(uint32_t, void*, void*, int32_t, void*, void*);
 typedef int32_t (*iFuppppp_t)(uint32_t, void*, void*, void*, void*, void*);
+typedef int32_t (*iFpiiiii_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef int32_t (*iFpiiipp_t)(void*, int32_t, int32_t, int32_t, void*, void*);
+typedef int32_t (*iFppiiuu_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t);
 typedef int32_t (*iFppIppp_t)(void*, void*, int64_t, void*, void*, void*);
+typedef int32_t (*iFppuiii_t)(void*, void*, uint32_t, int32_t, int32_t, int32_t);
+typedef int32_t (*iFppuiiL_t)(void*, void*, uint32_t, int32_t, int32_t, uintptr_t);
+typedef int32_t (*iFppuupp_t)(void*, void*, uint32_t, uint32_t, void*, void*);
+typedef int32_t (*iFppupip_t)(void*, void*, uint32_t, void*, int32_t, void*);
+typedef int32_t (*iFpppipi_t)(void*, void*, void*, int32_t, void*, int32_t);
+typedef int32_t (*iFpppipp_t)(void*, void*, void*, int32_t, void*, void*);
+typedef int32_t (*iFppppii_t)(void*, void*, void*, void*, int32_t, int32_t);
+typedef int32_t (*iFpppppi_t)(void*, void*, void*, void*, void*, int32_t);
+typedef int32_t (*iFpppppL_t)(void*, void*, void*, void*, void*, uintptr_t);
+typedef int32_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*);
 typedef void* (*pFEpippp_t)(x64emu_t*, void*, int32_t, void*, void*, void*);
 typedef void* (*pFiCiiCi_t)(int32_t, uint8_t, int32_t, int32_t, uint8_t, int32_t);
 typedef void* (*pFpiiiiu_t)(void*, int32_t, int32_t, int32_t, int32_t, uint32_t);
 typedef void* (*pFpippip_t)(void*, int32_t, void*, void*, int32_t, void*);
 typedef void* (*pFpuuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFppiiii_t)(void*, void*, int32_t, int32_t, int32_t, int32_t);
+typedef void* (*pFpppppp_t)(void*, void*, void*, void*, void*, void*);
 typedef void (*vFiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef void (*vFiiiiuup_t)(int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
 typedef void (*vFiiupuip_t)(int32_t, int32_t, uint32_t, void*, uint32_t, int32_t, void*);
@@ -521,11 +581,25 @@ typedef void (*vFuffffff_t)(uint32_t, float, float, float, float, float, float);
 typedef void (*vFudddddd_t)(uint32_t, double, double, double, double, double, double);
 typedef void (*vFpipipii_t)(void*, int32_t, void*, int32_t, void*, int32_t, int32_t);
 typedef void (*vFpddiidd_t)(void*, double, double, int32_t, int32_t, double, double);
+typedef void (*vFpppiiii_t)(void*, void*, void*, int32_t, int32_t, int32_t, int32_t);
+typedef int32_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
+typedef int32_t (*iFpiupiii_t)(void*, int32_t, uint32_t, void*, int32_t, int32_t, int32_t);
 typedef int32_t (*iFpuuiuui_t)(void*, uint32_t, uint32_t, int32_t, uint32_t, uint32_t, int32_t);
+typedef int32_t (*iFpuppppp_t)(void*, uint32_t, void*, void*, void*, void*, void*);
+typedef int32_t (*iFppiiuui_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t);
+typedef int32_t (*iFppiipii_t)(void*, void*, int32_t, int32_t, void*, int32_t, int32_t);
+typedef int32_t (*iFppipipi_t)(void*, void*, int32_t, void*, int32_t, void*, int32_t);
+typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*);
+typedef int32_t (*iFpppiiii_t)(void*, void*, void*, int32_t, int32_t, int32_t, int32_t);
+typedef int32_t (*iFpppiiuu_t)(void*, void*, void*, int32_t, int32_t, uint32_t, uint32_t);
+typedef int32_t (*iFpppiipi_t)(void*, void*, void*, int32_t, int32_t, void*, int32_t);
+typedef int32_t (*iFppppiii_t)(void*, void*, void*, void*, int32_t, int32_t, int32_t);
 typedef int32_t (*iFppppdpi_t)(void*, void*, void*, void*, double, void*, int32_t);
 typedef int32_t (*iFppppppp_t)(void*, void*, void*, void*, void*, void*, void*);
 typedef uint32_t (*uFuippppp_t)(uint32_t, int32_t, void*, void*, void*, void*, void*);
+typedef void* (*pFpppppuu_t)(void*, void*, void*, void*, void*, uint32_t, uint32_t);
+typedef void* (*pFppppppp_t)(void*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFiiiiuuip_t)(int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, void*);
 typedef void (*vFiupuiuup_t)(int32_t, uint32_t, void*, uint32_t, int32_t, uint32_t, uint32_t, void*);
 typedef void (*vFiupuuuup_t)(int32_t, uint32_t, void*, uint32_t, uint32_t, uint32_t, uint32_t, void*);
@@ -546,15 +620,21 @@ typedef void (*vFuuuipipp_t)(uint32_t, uint32_t, uint32_t, int32_t, void*, int32
 typedef void (*vFuuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFuuuuufff_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, float, float, float);
 typedef void (*vFffffffff_t)(float, float, float, float, float, float, float, float);
+typedef void (*vFppppiipi_t)(void*, void*, void*, void*, int32_t, int32_t, void*, int32_t);
 typedef int32_t (*iFEpippppp_t)(x64emu_t*, void*, int32_t, void*, void*, void*, void*, void*);
 typedef int32_t (*iFiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFiiupiupi_t)(int32_t, int32_t, uint32_t, void*, int32_t, uint32_t, void*, int32_t);
 typedef int32_t (*iFuiifpppp_t)(uint32_t, int32_t, int32_t, float, void*, void*, void*, void*);
 typedef int32_t (*iFpupppppp_t)(void*, uint32_t, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFppIIIppp_t)(void*, void*, int64_t, int64_t, int64_t, void*, void*, void*);
+typedef int32_t (*iFpppiippp_t)(void*, void*, void*, int32_t, int32_t, void*, void*, void*);
 typedef int32_t (*iFpppipipi_t)(void*, void*, void*, int32_t, void*, int32_t, void*, int32_t);
+typedef int32_t (*iFpppipppp_t)(void*, void*, void*, int32_t, void*, void*, void*, void*);
+typedef int32_t (*iFppppiipi_t)(void*, void*, void*, void*, int32_t, int32_t, void*, int32_t);
+typedef int32_t (*iFpppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*);
 typedef uint32_t (*uFuipppppp_t)(uint32_t, int32_t, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFuiiiuuuu_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
+typedef void* (*pFpppuuLLu_t)(void*, void*, void*, uint32_t, uint32_t, uintptr_t, uintptr_t, uint32_t);
 typedef void (*vFuiiiiiiii_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFuiiiiiuip_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t, void*);
 typedef void (*vFuiiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
@@ -570,10 +650,16 @@ typedef void (*vFuupiuiuuf_t)(uint32_t, uint32_t, void*, int32_t, uint32_t, int3
 typedef void (*vFuffffffff_t)(uint32_t, float, float, float, float, float, float, float, float);
 typedef void (*vFffuuuufff_t)(float, float, uint32_t, uint32_t, uint32_t, uint32_t, float, float, float);
 typedef void (*vFddddddddd_t)(double, double, double, double, double, double, double, double, double);
+typedef void (*vFpppppippp_t)(void*, void*, void*, void*, void*, int32_t, void*, void*, void*);
 typedef int32_t (*iFiiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFiiiipiiip_t)(int32_t, int32_t, int32_t, int32_t, void*, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFdddpppppp_t)(double, double, double, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFppiuiippL_t)(void*, void*, int32_t, uint32_t, int32_t, int32_t, void*, void*, uintptr_t);
+typedef int32_t (*iFpppiiuuii_t)(void*, void*, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t);
+typedef int32_t (*iFppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*);
+typedef void* (*pFEppiiuuLi_t)(x64emu_t*, void*, void*, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t);
 typedef void* (*pFpiiiiuuuu_t)(void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
+typedef void* (*pFppiiuuuLL_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uintptr_t, uintptr_t);
 typedef void (*vFiiiiiiiiiu_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t);
 typedef void (*vFuiiiiiiiii_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFuiiiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
@@ -590,6 +676,10 @@ typedef void (*vFuffiiffiip_t)(uint32_t, float, float, int32_t, int32_t, float,
 typedef void (*vFuddiiddiip_t)(uint32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, void*);
 typedef void (*vFffffffffff_t)(float, float, float, float, float, float, float, float, float, float);
 typedef int32_t (*iFiiiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
+typedef int32_t (*iFpuupiuiipp_t)(void*, uint32_t, uint32_t, void*, int32_t, uint32_t, int32_t, int32_t, void*, void*);
+typedef int32_t (*iFppppiiuuii_t)(void*, void*, void*, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t);
+typedef void* (*pFppuiipuuii_t)(void*, void*, uint32_t, int32_t, int32_t, void*, uint32_t, uint32_t, int32_t, int32_t);
+typedef void* (*pFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFuiiiiiiiiip_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef void (*vFuiiiiiiiuip_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t, void*);
 typedef void (*vFuiiiiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
@@ -601,20 +691,30 @@ typedef void (*vFuufffffffff_t)(uint32_t, uint32_t, float, float, float, float,
 typedef void (*vFuuddiiddiip_t)(uint32_t, uint32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, void*);
 typedef void (*vFuffffffffff_t)(uint32_t, float, float, float, float, float, float, float, float, float, float);
 typedef void (*vFpipipiipiii_t)(void*, int32_t, void*, int32_t, void*, int32_t, int32_t, void*, int32_t, int32_t, int32_t);
+typedef int32_t (*iFEppppiiiiuu_t)(x64emu_t*, void*, void*, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
 typedef int32_t (*iFiiiiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
+typedef int32_t (*iFppppiiuuiiL_t)(void*, void*, void*, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, uintptr_t);
+typedef void* (*pFEppuiipuuii_t)(x64emu_t*, void*, void*, uint32_t, int32_t, int32_t, void*, uint32_t, uint32_t, int32_t, int32_t);
 typedef void (*vFuuiiiiiiiuip_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t, void*);
 typedef void (*vFuuiiiiiiiuup_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
 typedef void (*vFuuuuuuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFffffffffffff_t)(float, float, float, float, float, float, float, float, float, float, float, float);
+typedef int32_t (*iFpppllipppppp_t)(void*, void*, void*, intptr_t, intptr_t, int32_t, void*, void*, void*, void*, void*, void*);
+typedef void* (*pFEppiiuuuipii_t)(x64emu_t*, void*, void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, int32_t, void*, int32_t, int32_t);
+typedef void* (*pFppiiuuuiupLp_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, int32_t, uint32_t, void*, uintptr_t, void*);
 typedef void (*vFuiiiiiiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
 typedef void (*vFuuuuuuuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFuffffffffffff_t)(uint32_t, float, float, float, float, float, float, float, float, float, float, float, float);
 typedef int32_t (*iFddddpppddpppp_t)(double, double, double, double, void*, void*, void*, double, double, void*, void*, void*, void*);
+typedef int32_t (*iFpippuuuiipppp_t)(void*, int32_t, void*, void*, uint32_t, uint32_t, uint32_t, int32_t, int32_t, void*, void*, void*, void*);
+typedef void* (*pFppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFuffiiffiiffiip_t)(uint32_t, float, float, int32_t, int32_t, float, float, int32_t, int32_t, float, float, int32_t, int32_t, void*);
 typedef void (*vFuddiiddiiddiip_t)(uint32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, void*);
 typedef void (*vFuuiiiiuuiiiiiii_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFfffffffffffffff_t)(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float);
+typedef uint32_t (*uFpppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFppuiiiiipuiiiiiiii_t)(void*, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
+typedef void* (*pFipppppppppppppppppppppp_t)(int32_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 
 #if defined(HAVE_LD80BITS)
 typedef long double (*DFD_t)(long double);
@@ -691,6 +791,7 @@ void vFff(x64emu_t *emu, uintptr_t fcn) { vFff_t fn = (vFff_t)fcn; fn(emu->xmm[0
 void vFfp(x64emu_t *emu, uintptr_t fcn) { vFfp_t fn = (vFfp_t)fcn; fn(emu->xmm[0].f[0], (void*)R_RDI); }
 void vFdd(x64emu_t *emu, uintptr_t fcn) { vFdd_t fn = (vFdd_t)fcn; fn(emu->xmm[0].d[0], emu->xmm[1].d[0]); }
 void vFpi(x64emu_t *emu, uintptr_t fcn) { vFpi_t fn = (vFpi_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI); }
+void vFpL(x64emu_t *emu, uintptr_t fcn) { vFpL_t fn = (vFpL_t)fcn; fn((void*)R_RDI, (uintptr_t)R_RSI); }
 void vFpp(x64emu_t *emu, uintptr_t fcn) { vFpp_t fn = (vFpp_t)fcn; fn((void*)R_RDI, (void*)R_RSI); }
 void cFpp(x64emu_t *emu, uintptr_t fcn) { cFpp_t fn = (cFpp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI); }
 void iFEp(x64emu_t *emu, uintptr_t fcn) { iFEp_t fn = (iFEp_t)fcn; R_RAX=fn(emu, (void*)R_RDI); }
@@ -707,6 +808,8 @@ void iFpi(x64emu_t *emu, uintptr_t fcn) { iFpi_t fn = (iFpi_t)fcn; R_RAX=fn((voi
 void iFpC(x64emu_t *emu, uintptr_t fcn) { iFpC_t fn = (iFpC_t)fcn; R_RAX=fn((void*)R_RDI, (uint8_t)R_RSI); }
 void iFpu(x64emu_t *emu, uintptr_t fcn) { iFpu_t fn = (iFpu_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI); }
 void iFpf(x64emu_t *emu, uintptr_t fcn) { iFpf_t fn = (iFpf_t)fcn; R_RAX=fn((void*)R_RDI, emu->xmm[0].f[0]); }
+void iFpl(x64emu_t *emu, uintptr_t fcn) { iFpl_t fn = (iFpl_t)fcn; R_RAX=fn((void*)R_RDI, (intptr_t)R_RSI); }
+void iFpL(x64emu_t *emu, uintptr_t fcn) { iFpL_t fn = (iFpL_t)fcn; R_RAX=fn((void*)R_RDI, (uintptr_t)R_RSI); }
 void iFpp(x64emu_t *emu, uintptr_t fcn) { iFpp_t fn = (iFpp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI); }
 void IFEp(x64emu_t *emu, uintptr_t fcn) { IFEp_t fn = (IFEp_t)fcn; R_RAX=(uint64_t)fn(emu, (void*)R_RDI); }
 void CFui(x64emu_t *emu, uintptr_t fcn) { CFui_t fn = (CFui_t)fcn; R_RAX=(unsigned char)fn((uint32_t)R_RDI, (int32_t)R_RSI); }
@@ -727,6 +830,7 @@ void dFdi(x64emu_t *emu, uintptr_t fcn) { dFdi_t fn = (dFdi_t)fcn; emu->xmm[0].d
 void dFdd(x64emu_t *emu, uintptr_t fcn) { dFdd_t fn = (dFdd_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0], emu->xmm[1].d[0]); }
 void dFdp(x64emu_t *emu, uintptr_t fcn) { dFdp_t fn = (dFdp_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0], (void*)R_RDI); }
 void dFpp(x64emu_t *emu, uintptr_t fcn) { dFpp_t fn = (dFpp_t)fcn; emu->xmm[0].d[0]=fn((void*)R_RDI, (void*)R_RSI); }
+void LFpi(x64emu_t *emu, uintptr_t fcn) { LFpi_t fn = (LFpi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI); }
 void LFpL(x64emu_t *emu, uintptr_t fcn) { LFpL_t fn = (LFpL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI); }
 void pFEp(x64emu_t *emu, uintptr_t fcn) { pFEp_t fn = (pFEp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI); }
 void pFii(x64emu_t *emu, uintptr_t fcn) { pFii_t fn = (pFii_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI); }
@@ -772,11 +876,13 @@ void vFfff(x64emu_t *emu, uintptr_t fcn) { vFfff_t fn = (vFfff_t)fcn; fn(emu->xm
 void vFfpp(x64emu_t *emu, uintptr_t fcn) { vFfpp_t fn = (vFfpp_t)fcn; fn(emu->xmm[0].f[0], (void*)R_RDI, (void*)R_RSI); }
 void vFddd(x64emu_t *emu, uintptr_t fcn) { vFddd_t fn = (vFddd_t)fcn; fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0]); }
 void vFdpp(x64emu_t *emu, uintptr_t fcn) { vFdpp_t fn = (vFdpp_t)fcn; fn(emu->xmm[0].d[0], (void*)R_RDI, (void*)R_RSI); }
+void vFLpp(x64emu_t *emu, uintptr_t fcn) { vFLpp_t fn = (vFLpp_t)fcn; fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void vFpii(x64emu_t *emu, uintptr_t fcn) { vFpii_t fn = (vFpii_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); }
 void vFpiu(x64emu_t *emu, uintptr_t fcn) { vFpiu_t fn = (vFpiu_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX); }
 void vFpif(x64emu_t *emu, uintptr_t fcn) { vFpif_t fn = (vFpif_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, emu->xmm[0].f[0]); }
 void vFpid(x64emu_t *emu, uintptr_t fcn) { vFpid_t fn = (vFpid_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, emu->xmm[0].d[0]); }
 void vFpip(x64emu_t *emu, uintptr_t fcn) { vFpip_t fn = (vFpip_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX); }
+void vFpui(x64emu_t *emu, uintptr_t fcn) { vFpui_t fn = (vFpui_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX); }
 void vFppi(x64emu_t *emu, uintptr_t fcn) { vFppi_t fn = (vFppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void vFppu(x64emu_t *emu, uintptr_t fcn) { vFppu_t fn = (vFppu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); }
 void vFppp(x64emu_t *emu, uintptr_t fcn) { vFppp_t fn = (vFppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
@@ -800,6 +906,8 @@ void iFpuL(x64emu_t *emu, uintptr_t fcn) { iFpuL_t fn = (iFpuL_t)fcn; R_RAX=fn((
 void iFpup(x64emu_t *emu, uintptr_t fcn) { iFpup_t fn = (iFpup_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
 void iFpfu(x64emu_t *emu, uintptr_t fcn) { iFpfu_t fn = (iFpfu_t)fcn; R_RAX=fn((void*)R_RDI, emu->xmm[0].f[0], (uint32_t)R_RSI); }
 void iFpff(x64emu_t *emu, uintptr_t fcn) { iFpff_t fn = (iFpff_t)fcn; R_RAX=fn((void*)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0]); }
+void iFplp(x64emu_t *emu, uintptr_t fcn) { iFplp_t fn = (iFplp_t)fcn; R_RAX=fn((void*)R_RDI, (intptr_t)R_RSI, (void*)R_RDX); }
+void iFpLp(x64emu_t *emu, uintptr_t fcn) { iFpLp_t fn = (iFpLp_t)fcn; R_RAX=fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX); }
 void iFppi(x64emu_t *emu, uintptr_t fcn) { iFppi_t fn = (iFppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void iFppu(x64emu_t *emu, uintptr_t fcn) { iFppu_t fn = (iFppu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); }
 void iFppL(x64emu_t *emu, uintptr_t fcn) { iFppL_t fn = (iFppL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
@@ -824,6 +932,7 @@ void fFfff(x64emu_t *emu, uintptr_t fcn) { fFfff_t fn = (fFfff_t)fcn; emu->xmm[0
 void fFffp(x64emu_t *emu, uintptr_t fcn) { fFffp_t fn = (fFffp_t)fcn; emu->xmm[0].f[0]=fn(emu->xmm[0].f[0], emu->xmm[1].f[0], (void*)R_RDI); }
 void dFddd(x64emu_t *emu, uintptr_t fcn) { dFddd_t fn = (dFddd_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0]); }
 void dFddp(x64emu_t *emu, uintptr_t fcn) { dFddp_t fn = (dFddp_t)fcn; emu->xmm[0].d[0]=fn(emu->xmm[0].d[0], emu->xmm[1].d[0], (void*)R_RDI); }
+void LFpii(x64emu_t *emu, uintptr_t fcn) { LFpii_t fn = (LFpii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); }
 void pFEip(x64emu_t *emu, uintptr_t fcn) { pFEip_t fn = (pFEip_t)fcn; R_RAX=(uintptr_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI); }
 void pFEpi(x64emu_t *emu, uintptr_t fcn) { pFEpi_t fn = (pFEpi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI); }
 void pFEpp(x64emu_t *emu, uintptr_t fcn) { pFEpp_t fn = (pFEpp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI); }
@@ -838,6 +947,7 @@ void pFpiu(x64emu_t *emu, uintptr_t fcn) { pFpiu_t fn = (pFpiu_t)fcn; R_RAX=(uin
 void pFpiL(x64emu_t *emu, uintptr_t fcn) { pFpiL_t fn = (pFpiL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uintptr_t)R_RDX); }
 void pFpip(x64emu_t *emu, uintptr_t fcn) { pFpip_t fn = (pFpip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX); }
 void pFpuu(x64emu_t *emu, uintptr_t fcn) { pFpuu_t fn = (pFpuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); }
+void pFpuL(x64emu_t *emu, uintptr_t fcn) { pFpuL_t fn = (pFpuL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX); }
 void pFppi(x64emu_t *emu, uintptr_t fcn) { pFppi_t fn = (pFppi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void pFppu(x64emu_t *emu, uintptr_t fcn) { pFppu_t fn = (pFppu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); }
 void pFppL(x64emu_t *emu, uintptr_t fcn) { pFppL_t fn = (pFppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
@@ -885,10 +995,12 @@ void vFdddd(x64emu_t *emu, uintptr_t fcn) { vFdddd_t fn = (vFdddd_t)fcn; fn(emu-
 void vFpiii(x64emu_t *emu, uintptr_t fcn) { vFpiii_t fn = (vFpiii_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void vFpiip(x64emu_t *emu, uintptr_t fcn) { vFpiip_t fn = (vFpiip_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void vFpipp(x64emu_t *emu, uintptr_t fcn) { vFpipp_t fn = (vFpipp_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
+void vFpupp(x64emu_t *emu, uintptr_t fcn) { vFpupp_t fn = (vFpupp_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void vFpdii(x64emu_t *emu, uintptr_t fcn) { vFpdii_t fn = (vFpdii_t)fcn; fn((void*)R_RDI, emu->xmm[0].d[0], (int32_t)R_RSI, (int32_t)R_RDX); }
 void vFpddd(x64emu_t *emu, uintptr_t fcn) { vFpddd_t fn = (vFpddd_t)fcn; fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0]); }
 void vFppip(x64emu_t *emu, uintptr_t fcn) { vFppip_t fn = (vFppip_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void vFppui(x64emu_t *emu, uintptr_t fcn) { vFppui_t fn = (vFppui_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX); }
+void vFpppu(x64emu_t *emu, uintptr_t fcn) { vFpppu_t fn = (vFpppu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); }
 void vFpppp(x64emu_t *emu, uintptr_t fcn) { vFpppp_t fn = (vFpppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void cFpiii(x64emu_t *emu, uintptr_t fcn) { cFpiii_t fn = (cFpiii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void iFEupp(x64emu_t *emu, uintptr_t fcn) { iFEupp_t fn = (iFEupp_t)fcn; R_RAX=fn(emu, (uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
@@ -901,16 +1013,27 @@ void iFuipp(x64emu_t *emu, uintptr_t fcn) { iFuipp_t fn = (iFuipp_t)fcn; R_RAX=f
 void iFuuff(x64emu_t *emu, uintptr_t fcn) { iFuuff_t fn = (iFuuff_t)fcn; R_RAX=fn((uint32_t)R_RDI, (uint32_t)R_RSI, emu->xmm[0].f[0], emu->xmm[1].f[0]); }
 void iFuppp(x64emu_t *emu, uintptr_t fcn) { iFuppp_t fn = (iFuppp_t)fcn; R_RAX=fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFpiiu(x64emu_t *emu, uintptr_t fcn) { iFpiiu_t fn = (iFpiiu_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX); }
+void iFpiiL(x64emu_t *emu, uintptr_t fcn) { iFpiiL_t fn = (iFpiiL_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uintptr_t)R_RCX); }
 void iFpiip(x64emu_t *emu, uintptr_t fcn) { iFpiip_t fn = (iFpiip_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
+void iFpiup(x64emu_t *emu, uintptr_t fcn) { iFpiup_t fn = (iFpiup_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
+void iFpipi(x64emu_t *emu, uintptr_t fcn) { iFpipi_t fn = (iFpipi_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
 void iFpipp(x64emu_t *emu, uintptr_t fcn) { iFpipp_t fn = (iFpipp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFpCCC(x64emu_t *emu, uintptr_t fcn) { iFpCCC_t fn = (iFpCCC_t)fcn; R_RAX=fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX); }
 void iFpWWu(x64emu_t *emu, uintptr_t fcn) { iFpWWu_t fn = (iFpWWu_t)fcn; R_RAX=fn((void*)R_RDI, (uint16_t)R_RSI, (uint16_t)R_RDX, (uint32_t)R_RCX); }
+void iFpuip(x64emu_t *emu, uintptr_t fcn) { iFpuip_t fn = (iFpuip_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void iFpuup(x64emu_t *emu, uintptr_t fcn) { iFpuup_t fn = (iFpuup_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
+void iFpuLL(x64emu_t *emu, uintptr_t fcn) { iFpuLL_t fn = (iFpuLL_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX); }
 void iFpupV(x64emu_t *emu, uintptr_t fcn) { iFpupV_t fn = (iFpupV_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
 void iFppii(x64emu_t *emu, uintptr_t fcn) { iFppii_t fn = (iFppii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void iFppiu(x64emu_t *emu, uintptr_t fcn) { iFppiu_t fn = (iFppiu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX); }
+void iFppiL(x64emu_t *emu, uintptr_t fcn) { iFppiL_t fn = (iFppiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uintptr_t)R_RCX); }
 void iFppip(x64emu_t *emu, uintptr_t fcn) { iFppip_t fn = (iFppip_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
+void iFppuu(x64emu_t *emu, uintptr_t fcn) { iFppuu_t fn = (iFppuu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
+void iFppup(x64emu_t *emu, uintptr_t fcn) { iFppup_t fn = (iFppup_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
+void iFpplp(x64emu_t *emu, uintptr_t fcn) { iFpplp_t fn = (iFpplp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (void*)R_RCX); }
+void iFppLp(x64emu_t *emu, uintptr_t fcn) { iFppLp_t fn = (iFppLp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); }
 void iFpppi(x64emu_t *emu, uintptr_t fcn) { iFpppi_t fn = (iFpppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
+void iFpppL(x64emu_t *emu, uintptr_t fcn) { iFpppL_t fn = (iFpppL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void iFpppp(x64emu_t *emu, uintptr_t fcn) { iFpppp_t fn = (iFpppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void IFEpIi(x64emu_t *emu, uintptr_t fcn) { IFEpIi_t fn = (IFEpIi_t)fcn; R_RAX=(uint64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int32_t)R_RDX); }
 void uFuuuu(x64emu_t *emu, uintptr_t fcn) { uFuuuu_t fn = (uFuuuu_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
@@ -918,8 +1041,11 @@ void uFpCCC(x64emu_t *emu, uintptr_t fcn) { uFpCCC_t fn = (uFpCCC_t)fcn; R_RAX=(
 void uFpuip(x64emu_t *emu, uintptr_t fcn) { uFpuip_t fn = (uFpuip_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void uFpuuu(x64emu_t *emu, uintptr_t fcn) { uFpuuu_t fn = (uFpuuu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
 void uFpppi(x64emu_t *emu, uintptr_t fcn) { uFpppi_t fn = (uFpppi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
+void uFpppp(x64emu_t *emu, uintptr_t fcn) { uFpppp_t fn = (uFpppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
+void LFpuuu(x64emu_t *emu, uintptr_t fcn) { LFpuuu_t fn = (LFpuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
 void LFpLLp(x64emu_t *emu, uintptr_t fcn) { LFpLLp_t fn = (LFpLLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); }
 void pFEupp(x64emu_t *emu, uintptr_t fcn) { pFEupp_t fn = (pFEupp_t)fcn; R_RAX=(uintptr_t)fn(emu, (uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
+void pFEpip(x64emu_t *emu, uintptr_t fcn) { pFEpip_t fn = (pFEpip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX); }
 void pFEppi(x64emu_t *emu, uintptr_t fcn) { pFEppi_t fn = (pFEppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void pFEppp(x64emu_t *emu, uintptr_t fcn) { pFEppp_t fn = (pFEppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void pFiiiu(x64emu_t *emu, uintptr_t fcn) { pFiiiu_t fn = (pFiiiu_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX); }
@@ -928,8 +1054,11 @@ void pFuiii(x64emu_t *emu, uintptr_t fcn) { pFuiii_t fn = (pFuiii_t)fcn; R_RAX=(
 void pFpiii(x64emu_t *emu, uintptr_t fcn) { pFpiii_t fn = (pFpiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void pFpipp(x64emu_t *emu, uintptr_t fcn) { pFpipp_t fn = (pFpipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void pFpuii(x64emu_t *emu, uintptr_t fcn) { pFpuii_t fn = (pFpuii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
+void pFplpp(x64emu_t *emu, uintptr_t fcn) { pFplpp_t fn = (pFplpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void pFppiL(x64emu_t *emu, uintptr_t fcn) { pFppiL_t fn = (pFppiL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uintptr_t)R_RCX); }
+void pFppip(x64emu_t *emu, uintptr_t fcn) { pFppip_t fn = (pFppip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void pFppuL(x64emu_t *emu, uintptr_t fcn) { pFppuL_t fn = (pFppuL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uintptr_t)R_RCX); }
+void pFppup(x64emu_t *emu, uintptr_t fcn) { pFppup_t fn = (pFppup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
 void pFppLL(x64emu_t *emu, uintptr_t fcn) { pFppLL_t fn = (pFppLL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX); }
 void pFpppi(x64emu_t *emu, uintptr_t fcn) { pFpppi_t fn = (pFpppi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
 void pFpppu(x64emu_t *emu, uintptr_t fcn) { pFpppu_t fn = (pFpppu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); }
@@ -1002,11 +1131,20 @@ void iFipppi(x64emu_t *emu, uintptr_t fcn) { iFipppi_t fn = (iFipppi_t)fcn; R_RA
 void iFpiiii(x64emu_t *emu, uintptr_t fcn) { iFpiiii_t fn = (iFpiiii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
 void iFpiiip(x64emu_t *emu, uintptr_t fcn) { iFpiiip_t fn = (iFpiiip_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void iFpiiuu(x64emu_t *emu, uintptr_t fcn) { iFpiiuu_t fn = (iFpiiuu_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
+void iFpiipi(x64emu_t *emu, uintptr_t fcn) { iFpiipi_t fn = (iFpiipi_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void iFpipii(x64emu_t *emu, uintptr_t fcn) { iFpipii_t fn = (iFpipii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
 void iFpippp(x64emu_t *emu, uintptr_t fcn) { iFpippp_t fn = (iFpippp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFpCCCC(x64emu_t *emu, uintptr_t fcn) { iFpCCCC_t fn = (iFpCCCC_t)fcn; R_RAX=fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8); }
+void iFpuuLL(x64emu_t *emu, uintptr_t fcn) { iFpuuLL_t fn = (iFpuuLL_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8); }
+void iFpuupp(x64emu_t *emu, uintptr_t fcn) { iFpuupp_t fn = (iFpuupp_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
+void iFppiip(x64emu_t *emu, uintptr_t fcn) { iFppiip_t fn = (iFppiip_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
+void iFppiup(x64emu_t *emu, uintptr_t fcn) { iFppiup_t fn = (iFppiup_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); }
 void iFppipi(x64emu_t *emu, uintptr_t fcn) { iFppipi_t fn = (iFppipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
+void iFppipp(x64emu_t *emu, uintptr_t fcn) { iFppipp_t fn = (iFppipp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFppupi(x64emu_t *emu, uintptr_t fcn) { iFppupi_t fn = (iFppupi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
+void iFpppii(x64emu_t *emu, uintptr_t fcn) { iFpppii_t fn = (iFpppii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
+void iFpppiL(x64emu_t *emu, uintptr_t fcn) { iFpppiL_t fn = (iFpppiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (uintptr_t)R_R8); }
+void iFppppi(x64emu_t *emu, uintptr_t fcn) { iFppppi_t fn = (iFppppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void iFppppp(x64emu_t *emu, uintptr_t fcn) { iFppppp_t fn = (iFppppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void IFppIII(x64emu_t *emu, uintptr_t fcn) { IFppIII_t fn = (IFppIII_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8); }
 void uFEppuu(x64emu_t *emu, uintptr_t fcn) { uFEppuu_t fn = (uFEppuu_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
@@ -1014,14 +1152,21 @@ void uFiuuuu(x64emu_t *emu, uintptr_t fcn) { uFiuuuu_t fn = (uFiuuuu_t)fcn; R_RA
 void uFuiiiu(x64emu_t *emu, uintptr_t fcn) { uFuiiiu_t fn = (uFuiiiu_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8); }
 void uFpCCCC(x64emu_t *emu, uintptr_t fcn) { uFpCCCC_t fn = (uFpCCCC_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8); }
 void uFpuuuu(x64emu_t *emu, uintptr_t fcn) { uFpuuuu_t fn = (uFpuuuu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
+void uFppiip(x64emu_t *emu, uintptr_t fcn) { uFppiip_t fn = (uFppiip_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void uFppppp(x64emu_t *emu, uintptr_t fcn) { uFppppp_t fn = (uFppppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void LFppppp(x64emu_t *emu, uintptr_t fcn) { LFppppp_t fn = (LFppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFuiiiu(x64emu_t *emu, uintptr_t fcn) { pFuiiiu_t fn = (pFuiiiu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8); }
 void pFuiipp(x64emu_t *emu, uintptr_t fcn) { pFuiipp_t fn = (pFuiipp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
+void pFpiiuu(x64emu_t *emu, uintptr_t fcn) { pFpiiuu_t fn = (pFpiiuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
 void pFpuiii(x64emu_t *emu, uintptr_t fcn) { pFpuiii_t fn = (pFpuiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
 void pFppipi(x64emu_t *emu, uintptr_t fcn) { pFppipi_t fn = (pFppipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
+void pFppipp(x64emu_t *emu, uintptr_t fcn) { pFppipp_t fn = (pFppipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
+void pFppuuu(x64emu_t *emu, uintptr_t fcn) { pFppuuu_t fn = (pFppuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
 void pFppuup(x64emu_t *emu, uintptr_t fcn) { pFppuup_t fn = (pFppuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); }
+void pFppLLp(x64emu_t *emu, uintptr_t fcn) { pFppLLp_t fn = (pFppLLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); }
 void pFpppip(x64emu_t *emu, uintptr_t fcn) { pFpppip_t fn = (pFpppip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
+void pFpppuu(x64emu_t *emu, uintptr_t fcn) { pFpppuu_t fn = (pFpppuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
+void pFppppp(x64emu_t *emu, uintptr_t fcn) { pFppppp_t fn = (pFppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void vFEiiipp(x64emu_t *emu, uintptr_t fcn) { vFEiiipp_t fn = (vFEiiipp_t)fcn; fn(emu, (int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void vFiiiiii(x64emu_t *emu, uintptr_t fcn) { vFiiiiii_t fn = (vFiiiiii_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void vFiiiuil(x64emu_t *emu, uintptr_t fcn) { vFiiiuil_t fn = (vFiiiuil_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (intptr_t)R_R9); }
@@ -1070,17 +1215,32 @@ void vFppiiii(x64emu_t *emu, uintptr_t fcn) { vFppiiii_t fn = (vFppiiii_t)fcn; f
 void vFppupii(x64emu_t *emu, uintptr_t fcn) { vFppupii_t fn = (vFppupii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void vFpppppp(x64emu_t *emu, uintptr_t fcn) { vFpppppp_t fn = (vFpppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFEpippi(x64emu_t *emu, uintptr_t fcn) { iFEpippi_t fn = (iFEpippi_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
+void iFEppppp(x64emu_t *emu, uintptr_t fcn) { iFEppppp_t fn = (iFEppppp_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFiiiiii(x64emu_t *emu, uintptr_t fcn) { iFiiiiii_t fn = (iFiiiiii_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void iFiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiip_t fn = (iFiiiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
+void iFuppipp(x64emu_t *emu, uintptr_t fcn) { iFuppipp_t fn = (iFuppipp_t)fcn; R_RAX=fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFuppppp(x64emu_t *emu, uintptr_t fcn) { iFuppppp_t fn = (iFuppppp_t)fcn; R_RAX=fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
+void iFpiiiii(x64emu_t *emu, uintptr_t fcn) { iFpiiiii_t fn = (iFpiiiii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void iFpiiipp(x64emu_t *emu, uintptr_t fcn) { iFpiiipp_t fn = (iFpiiipp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
+void iFppiiuu(x64emu_t *emu, uintptr_t fcn) { iFppiiuu_t fn = (iFppiiuu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
 void iFppIppp(x64emu_t *emu, uintptr_t fcn) { iFppIppp_t fn = (iFppIppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
+void iFppuiii(x64emu_t *emu, uintptr_t fcn) { iFppuiii_t fn = (iFppuiii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
+void iFppuiiL(x64emu_t *emu, uintptr_t fcn) { iFppuiiL_t fn = (iFppuiiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uintptr_t)R_R9); }
+void iFppuupp(x64emu_t *emu, uintptr_t fcn) { iFppuupp_t fn = (iFppuupp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
+void iFppupip(x64emu_t *emu, uintptr_t fcn) { iFppupip_t fn = (iFppupip_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
+void iFpppipi(x64emu_t *emu, uintptr_t fcn) { iFpppipi_t fn = (iFpppipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
+void iFpppipp(x64emu_t *emu, uintptr_t fcn) { iFpppipp_t fn = (iFpppipp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
+void iFppppii(x64emu_t *emu, uintptr_t fcn) { iFppppii_t fn = (iFppppii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
+void iFpppppi(x64emu_t *emu, uintptr_t fcn) { iFpppppi_t fn = (iFpppppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9); }
+void iFpppppL(x64emu_t *emu, uintptr_t fcn) { iFpppppL_t fn = (iFpppppL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9); }
+void iFpppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppp_t fn = (iFpppppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void pFEpippp(x64emu_t *emu, uintptr_t fcn) { pFEpippp_t fn = (pFEpippp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFiCiiCi(x64emu_t *emu, uintptr_t fcn) { pFiCiiCi_t fn = (pFiCiiCi_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (uint8_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint8_t)R_R8, (int32_t)R_R9); }
 void pFpiiiiu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiu_t fn = (pFpiiiiu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9); }
 void pFpippip(x64emu_t *emu, uintptr_t fcn) { pFpippip_t fn = (pFpippip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void pFpuuuuu(x64emu_t *emu, uintptr_t fcn) { pFpuuuuu_t fn = (pFpuuuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
 void pFppiiii(x64emu_t *emu, uintptr_t fcn) { pFppiiii_t fn = (pFppiiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
+void pFpppppp(x64emu_t *emu, uintptr_t fcn) { pFpppppp_t fn = (pFpppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void vFiiiiiip(x64emu_t *emu, uintptr_t fcn) { vFiiiiiip_t fn = (vFiiiiiip_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
 void vFiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFiiiiuup_t fn = (vFiiiiuup_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8)); }
 void vFiiupuip(x64emu_t *emu, uintptr_t fcn) { vFiiupuip_t fn = (vFiiupuip_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
@@ -1118,11 +1278,25 @@ void vFuffffff(x64emu_t *emu, uintptr_t fcn) { vFuffffff_t fn = (vFuffffff_t)fcn
 void vFudddddd(x64emu_t *emu, uintptr_t fcn) { vFudddddd_t fn = (vFudddddd_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0]); }
 void vFpipipii(x64emu_t *emu, uintptr_t fcn) { vFpipipii_t fn = (vFpipipii_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void vFpddiidd(x64emu_t *emu, uintptr_t fcn) { vFpddiidd_t fn = (vFpddiidd_t)fcn; fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].d[0], emu->xmm[3].d[0]); }
+void vFpppiiii(x64emu_t *emu, uintptr_t fcn) { vFpppiiii_t fn = (vFpppiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
+void iFEpppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiip_t fn = (iFiiiiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
+void iFpiupiii(x64emu_t *emu, uintptr_t fcn) { iFpiupiii_t fn = (iFpiupiii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFpuuiuui(x64emu_t *emu, uintptr_t fcn) { iFpuuiuui_t fn = (iFpuuiuui_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
+void iFpuppppp(x64emu_t *emu, uintptr_t fcn) { iFpuppppp_t fn = (iFpuppppp_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void iFppiiuui(x64emu_t *emu, uintptr_t fcn) { iFppiiuui_t fn = (iFppiiuui_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
+void iFppiipii(x64emu_t *emu, uintptr_t fcn) { iFppiipii_t fn = (iFppiipii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
+void iFppipipi(x64emu_t *emu, uintptr_t fcn) { iFppipipi_t fn = (iFppipipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
+void iFppipppp(x64emu_t *emu, uintptr_t fcn) { iFppipppp_t fn = (iFppipppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void iFpppiiii(x64emu_t *emu, uintptr_t fcn) { iFpppiiii_t fn = (iFpppiiii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
+void iFpppiiuu(x64emu_t *emu, uintptr_t fcn) { iFpppiiuu_t fn = (iFpppiiuu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
+void iFpppiipi(x64emu_t *emu, uintptr_t fcn) { iFpppiipi_t fn = (iFpppiipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
+void iFppppiii(x64emu_t *emu, uintptr_t fcn) { iFppppiii_t fn = (iFppppiii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFppppdpi(x64emu_t *emu, uintptr_t fcn) { iFppppdpi_t fn = (iFppppdpi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, emu->xmm[0].d[0], (void*)R_R8, (int32_t)R_R9); }
 void iFppppppp(x64emu_t *emu, uintptr_t fcn) { iFppppppp_t fn = (iFppppppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void uFuippppp(x64emu_t *emu, uintptr_t fcn) { uFuippppp_t fn = (uFuippppp_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void pFpppppuu(x64emu_t *emu, uintptr_t fcn) { pFpppppuu_t fn = (pFpppppuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
+void pFppppppp(x64emu_t *emu, uintptr_t fcn) { pFppppppp_t fn = (pFppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void vFiiiiuuip(x64emu_t *emu, uintptr_t fcn) { vFiiiiuuip_t fn = (vFiiiiuuip_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFiupuiuup(x64emu_t *emu, uintptr_t fcn) { vFiupuiuup_t fn = (vFiupuiuup_t)fcn; fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFiupuuuup(x64emu_t *emu, uintptr_t fcn) { vFiupuuuup_t fn = (vFiupuuuup_t)fcn; fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
@@ -1143,15 +1317,21 @@ void vFuuuipipp(x64emu_t *emu, uintptr_t fcn) { vFuuuipipp_t fn = (vFuuuipipp_t)
 void vFuuuuuuuu(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuu_t fn = (vFuuuuuuuu_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
 void vFuuuuufff(x64emu_t *emu, uintptr_t fcn) { vFuuuuufff_t fn = (vFuuuuufff_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0]); }
 void vFffffffff(x64emu_t *emu, uintptr_t fcn) { vFffffffff_t fn = (vFffffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0]); }
+void vFppppiipi(x64emu_t *emu, uintptr_t fcn) { vFppppiipi_t fn = (vFppppiipi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); }
 void iFEpippppp(x64emu_t *emu, uintptr_t fcn) { iFEpippppp_t fn = (iFEpippppp_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void iFiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiip_t fn = (iFiiiiiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFiiupiupi(x64emu_t *emu, uintptr_t fcn) { iFiiupiupi_t fn = (iFiiupiupi_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); }
 void iFuiifpppp(x64emu_t *emu, uintptr_t fcn) { iFuiifpppp_t fn = (iFuiifpppp_t)fcn; R_RAX=fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[0].f[0], (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void iFpupppppp(x64emu_t *emu, uintptr_t fcn) { iFpupppppp_t fn = (iFpupppppp_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFppIIIppp(x64emu_t *emu, uintptr_t fcn) { iFppIIIppp_t fn = (iFppIIIppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
+void iFpppiippp(x64emu_t *emu, uintptr_t fcn) { iFpppiippp_t fn = (iFpppiippp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFpppipipi(x64emu_t *emu, uintptr_t fcn) { iFpppipipi_t fn = (iFpppipipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); }
+void iFpppipppp(x64emu_t *emu, uintptr_t fcn) { iFpppipppp_t fn = (iFpppipppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
+void iFppppiipi(x64emu_t *emu, uintptr_t fcn) { iFppppiipi_t fn = (iFppppiipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); }
+void iFpppppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppppp_t fn = (iFpppppppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void uFuipppppp(x64emu_t *emu, uintptr_t fcn) { uFuipppppp_t fn = (uFuipppppp_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void pFuiiiuuuu(x64emu_t *emu, uintptr_t fcn) { pFuiiiuuuu_t fn = (pFuiiiuuuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
+void pFpppuuLLu(x64emu_t *emu, uintptr_t fcn) { pFpppuuLLu_t fn = (pFpppuuLLu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uintptr_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
 void vFuiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiii_t fn = (vFuiiiiiiii_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
 void vFuiiiiiuip(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiuip_t fn = (vFuiiiiiuip_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void vFuiiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiuup_t fn = (vFuiiiiiuup_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
@@ -1167,10 +1347,16 @@ void vFuupiuiuuf(x64emu_t *emu, uintptr_t fcn) { vFuupiuiuuf_t fn = (vFuupiuiuuf
 void vFuffffffff(x64emu_t *emu, uintptr_t fcn) { vFuffffffff_t fn = (vFuffffffff_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0]); }
 void vFffuuuufff(x64emu_t *emu, uintptr_t fcn) { vFffuuuufff_t fn = (vFffuuuufff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], (uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0]); }
 void vFddddddddd(x64emu_t *emu, uintptr_t fcn) { vFddddddddd_t fn = (vFddddddddd_t)fcn; fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0], emu->xmm[6].d[0], emu->xmm[7].d[0], *(double*)(R_RSP + 8)); }
+void vFpppppippp(x64emu_t *emu, uintptr_t fcn) { vFpppppippp_t fn = (vFpppppippp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiip_t fn = (iFiiiiiiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFiiiipiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiipiiip_t fn = (iFiiiipiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFdddpppppp(x64emu_t *emu, uintptr_t fcn) { iFdddpppppp_t fn = (iFdddpppppp_t)fcn; R_RAX=fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
+void iFppiuiippL(x64emu_t *emu, uintptr_t fcn) { iFppiuiippL_t fn = (iFppiuiippL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); }
+void iFpppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFpppiiuuii_t fn = (iFpppiiuuii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
+void iFppppppppp(x64emu_t *emu, uintptr_t fcn) { iFppppppppp_t fn = (iFppppppppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); }
+void pFEppiiuuLi(x64emu_t *emu, uintptr_t fcn) { pFEppiiuuLi_t fn = (pFEppiiuuLi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); }
 void pFpiiiiuuuu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiuuuu_t fn = (pFpiiiiuuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); }
+void pFppiiuuuLL(x64emu_t *emu, uintptr_t fcn) { pFppiiuuuLL_t fn = (pFppiiuuuLL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); }
 void vFiiiiiiiiiu(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiiu_t fn = (vFiiiiiiiiiu_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32)); }
 void vFuiiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiii_t fn = (vFuiiiiiiiii_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); }
 void vFuiiiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiuup_t fn = (vFuiiiiiiuup_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); }
@@ -1187,6 +1373,10 @@ void vFuffiiffiip(x64emu_t *emu, uintptr_t fcn) { vFuffiiffiip_t fn = (vFuffiiff
 void vFuddiiddiip(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiip_t fn = (vFuddiiddiip_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].d[0], emu->xmm[3].d[0], (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void vFffffffffff(x64emu_t *emu, uintptr_t fcn) { vFffffffffff_t fn = (vFffffffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16)); }
 void iFiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiiip_t fn = (iFiiiiiiiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); }
+void iFpuupiuiipp(x64emu_t *emu, uintptr_t fcn) { iFpuupiuiipp_t fn = (iFpuupiuiipp_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); }
+void iFppppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFppppiiuuii_t fn = (iFppppiiuuii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); }
+void pFppuiipuuii(x64emu_t *emu, uintptr_t fcn) { pFppuiipuuii_t fn = (pFppuiipuuii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); }
+void pFpppppppppp(x64emu_t *emu, uintptr_t fcn) { pFpppppppppp_t fn = (pFpppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); }
 void vFuiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiip_t fn = (vFuiiiiiiiiip_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
 void vFuiiiiiiiuip(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiuip_t fn = (vFuiiiiiiiuip_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
 void vFuiiiiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiuup_t fn = (vFuiiiiiiiuup_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
@@ -1198,20 +1388,30 @@ void vFuufffffffff(x64emu_t *emu, uintptr_t fcn) { vFuufffffffff_t fn = (vFuufff
 void vFuuddiiddiip(x64emu_t *emu, uintptr_t fcn) { vFuuddiiddiip_t fn = (vFuuddiiddiip_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RDX, (int32_t)R_RCX, emu->xmm[2].d[0], emu->xmm[3].d[0], (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
 void vFuffffffffff(x64emu_t *emu, uintptr_t fcn) { vFuffffffffff_t fn = (vFuffffffffff_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16)); }
 void vFpipipiipiii(x64emu_t *emu, uintptr_t fcn) { vFpipipiipiii_t fn = (vFpipipiipiii_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40)); }
+void iFEppppiiiiuu(x64emu_t *emu, uintptr_t fcn) { iFEppppiiiiuu_t fn = (iFEppppiiiiuu_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32)); }
 void iFiiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiiiip_t fn = (iFiiiiiiiiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
+void iFppppiiuuiiL(x64emu_t *emu, uintptr_t fcn) { iFppppiiuuiiL_t fn = (iFppppiiuuiiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(uintptr_t*)(R_RSP + 40)); }
+void pFEppuiipuuii(x64emu_t *emu, uintptr_t fcn) { pFEppuiipuuii_t fn = (pFEppuiipuuii_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); }
 void vFuuiiiiiiiuip(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiiiiuip_t fn = (vFuuiiiiiiiuip_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(void**)(R_RSP + 48)); }
 void vFuuiiiiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiiiiuup_t fn = (vFuuiiiiiiiuup_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(void**)(R_RSP + 48)); }
 void vFuuuuuuuuuuuu(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuu_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(uint32_t*)(R_RSP + 48)); }
 void vFffffffffffff(x64emu_t *emu, uintptr_t fcn) { vFffffffffffff_t fn = (vFffffffffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16), *(float*)(R_RSP + 24), *(float*)(R_RSP + 32)); }
+void iFpppllipppppp(x64emu_t *emu, uintptr_t fcn) { iFpppllipppppp_t fn = (iFpppllipppppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48)); }
+void pFEppiiuuuipii(x64emu_t *emu, uintptr_t fcn) { pFEppiiuuuipii_t fn = (pFEppiiuuuipii_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40)); }
+void pFppiiuuuiupLp(x64emu_t *emu, uintptr_t fcn) { pFppiiuuuiupLp_t fn = (pFppiiuuuiupLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(void**)(R_RSP + 32), *(uintptr_t*)(R_RSP + 40), *(void**)(R_RSP + 48)); }
 void vFuiiiiiiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiiuup_t fn = (vFuiiiiiiiiiuup_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(uint32_t*)(R_RSP + 48), *(void**)(R_RSP + 56)); }
 void vFuuuuuuuuuuuuu(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuuu_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(uint32_t*)(R_RSP + 48), *(uint32_t*)(R_RSP + 56)); }
 void vFuffffffffffff(x64emu_t *emu, uintptr_t fcn) { vFuffffffffffff_t fn = (vFuffffffffffff_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16), *(float*)(R_RSP + 24), *(float*)(R_RSP + 32)); }
 void iFddddpppddpppp(x64emu_t *emu, uintptr_t fcn) { iFddddpppddpppp_t fn = (iFddddpppddpppp_t)fcn; R_RAX=fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, emu->xmm[4].d[0], emu->xmm[5].d[0], (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void iFpippuuuiipppp(x64emu_t *emu, uintptr_t fcn) { iFpippuuuiipppp_t fn = (iFpippuuuiipppp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); }
+void pFppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFppppppppppppp_t fn = (pFppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); }
 void vFuffiiffiiffiip(x64emu_t *emu, uintptr_t fcn) { vFuffiiffiiffiip_t fn = (vFuffiiffiiffiip_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].f[0], emu->xmm[3].f[0], (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[4].f[0], emu->xmm[5].f[0], (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFuddiiddiiddiip(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiiddiip_t fn = (vFuddiiddiiddiip_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].d[0], emu->xmm[3].d[0], (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[4].d[0], emu->xmm[5].d[0], (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFuuiiiiuuiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiuuiiiiiii_t fn = (vFuuiiiiuuiiiiiii_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48), *(int32_t*)(R_RSP + 56), *(int32_t*)(R_RSP + 64), *(int32_t*)(R_RSP + 72)); }
 void vFfffffffffffffff(x64emu_t *emu, uintptr_t fcn) { vFfffffffffffffff_t fn = (vFfffffffffffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16), *(float*)(R_RSP + 24), *(float*)(R_RSP + 32), *(float*)(R_RSP + 40), *(float*)(R_RSP + 48), *(float*)(R_RSP + 56)); }
+void uFpppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { uFpppppppppppppppp_t fn = (uFpppppppppppppppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80)); }
 void vFppuiiiiipuiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFppuiiiiipuiiiiiiii_t fn = (vFppuiiiiipuiiiiiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48), *(int32_t*)(R_RSP + 56), *(int32_t*)(R_RSP + 64), *(int32_t*)(R_RSP + 72), *(int32_t*)(R_RSP + 80), *(int32_t*)(R_RSP + 88), *(int32_t*)(R_RSP + 96)); }
+void pFipppppppppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFipppppppppppppppppppppp_t fn = (pFipppppppppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96), *(void**)(R_RSP + 104), *(void**)(R_RSP + 112), *(void**)(R_RSP + 120), *(void**)(R_RSP + 128), *(void**)(R_RSP + 136)); }
 
 #if defined(HAVE_LD80BITS)
 void DFD(x64emu_t *emu, uintptr_t fcn) { DFD_t fn = (DFD_t)fcn; long double ld=fn(*(long double*)(R_RSP + 8)); fpu_do_push(emu); ST0val = ld; }
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index f9a81519..ac05123b 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -91,6 +91,7 @@ void vFff(x64emu_t *emu, uintptr_t fnc);
 void vFfp(x64emu_t *emu, uintptr_t fnc);
 void vFdd(x64emu_t *emu, uintptr_t fnc);
 void vFpi(x64emu_t *emu, uintptr_t fnc);
+void vFpL(x64emu_t *emu, uintptr_t fnc);
 void vFpp(x64emu_t *emu, uintptr_t fnc);
 void cFpp(x64emu_t *emu, uintptr_t fnc);
 void iFEp(x64emu_t *emu, uintptr_t fnc);
@@ -107,6 +108,8 @@ void iFpi(x64emu_t *emu, uintptr_t fnc);
 void iFpC(x64emu_t *emu, uintptr_t fnc);
 void iFpu(x64emu_t *emu, uintptr_t fnc);
 void iFpf(x64emu_t *emu, uintptr_t fnc);
+void iFpl(x64emu_t *emu, uintptr_t fnc);
+void iFpL(x64emu_t *emu, uintptr_t fnc);
 void iFpp(x64emu_t *emu, uintptr_t fnc);
 void IFEp(x64emu_t *emu, uintptr_t fnc);
 void CFui(x64emu_t *emu, uintptr_t fnc);
@@ -127,6 +130,7 @@ void dFdi(x64emu_t *emu, uintptr_t fnc);
 void dFdd(x64emu_t *emu, uintptr_t fnc);
 void dFdp(x64emu_t *emu, uintptr_t fnc);
 void dFpp(x64emu_t *emu, uintptr_t fnc);
+void LFpi(x64emu_t *emu, uintptr_t fnc);
 void LFpL(x64emu_t *emu, uintptr_t fnc);
 void pFEp(x64emu_t *emu, uintptr_t fnc);
 void pFii(x64emu_t *emu, uintptr_t fnc);
@@ -172,11 +176,13 @@ void vFfff(x64emu_t *emu, uintptr_t fnc);
 void vFfpp(x64emu_t *emu, uintptr_t fnc);
 void vFddd(x64emu_t *emu, uintptr_t fnc);
 void vFdpp(x64emu_t *emu, uintptr_t fnc);
+void vFLpp(x64emu_t *emu, uintptr_t fnc);
 void vFpii(x64emu_t *emu, uintptr_t fnc);
 void vFpiu(x64emu_t *emu, uintptr_t fnc);
 void vFpif(x64emu_t *emu, uintptr_t fnc);
 void vFpid(x64emu_t *emu, uintptr_t fnc);
 void vFpip(x64emu_t *emu, uintptr_t fnc);
+void vFpui(x64emu_t *emu, uintptr_t fnc);
 void vFppi(x64emu_t *emu, uintptr_t fnc);
 void vFppu(x64emu_t *emu, uintptr_t fnc);
 void vFppp(x64emu_t *emu, uintptr_t fnc);
@@ -200,6 +206,8 @@ void iFpuL(x64emu_t *emu, uintptr_t fnc);
 void iFpup(x64emu_t *emu, uintptr_t fnc);
 void iFpfu(x64emu_t *emu, uintptr_t fnc);
 void iFpff(x64emu_t *emu, uintptr_t fnc);
+void iFplp(x64emu_t *emu, uintptr_t fnc);
+void iFpLp(x64emu_t *emu, uintptr_t fnc);
 void iFppi(x64emu_t *emu, uintptr_t fnc);
 void iFppu(x64emu_t *emu, uintptr_t fnc);
 void iFppL(x64emu_t *emu, uintptr_t fnc);
@@ -224,6 +232,7 @@ void fFfff(x64emu_t *emu, uintptr_t fnc);
 void fFffp(x64emu_t *emu, uintptr_t fnc);
 void dFddd(x64emu_t *emu, uintptr_t fnc);
 void dFddp(x64emu_t *emu, uintptr_t fnc);
+void LFpii(x64emu_t *emu, uintptr_t fnc);
 void pFEip(x64emu_t *emu, uintptr_t fnc);
 void pFEpi(x64emu_t *emu, uintptr_t fnc);
 void pFEpp(x64emu_t *emu, uintptr_t fnc);
@@ -238,6 +247,7 @@ void pFpiu(x64emu_t *emu, uintptr_t fnc);
 void pFpiL(x64emu_t *emu, uintptr_t fnc);
 void pFpip(x64emu_t *emu, uintptr_t fnc);
 void pFpuu(x64emu_t *emu, uintptr_t fnc);
+void pFpuL(x64emu_t *emu, uintptr_t fnc);
 void pFppi(x64emu_t *emu, uintptr_t fnc);
 void pFppu(x64emu_t *emu, uintptr_t fnc);
 void pFppL(x64emu_t *emu, uintptr_t fnc);
@@ -285,10 +295,12 @@ void vFdddd(x64emu_t *emu, uintptr_t fnc);
 void vFpiii(x64emu_t *emu, uintptr_t fnc);
 void vFpiip(x64emu_t *emu, uintptr_t fnc);
 void vFpipp(x64emu_t *emu, uintptr_t fnc);
+void vFpupp(x64emu_t *emu, uintptr_t fnc);
 void vFpdii(x64emu_t *emu, uintptr_t fnc);
 void vFpddd(x64emu_t *emu, uintptr_t fnc);
 void vFppip(x64emu_t *emu, uintptr_t fnc);
 void vFppui(x64emu_t *emu, uintptr_t fnc);
+void vFpppu(x64emu_t *emu, uintptr_t fnc);
 void vFpppp(x64emu_t *emu, uintptr_t fnc);
 void cFpiii(x64emu_t *emu, uintptr_t fnc);
 void iFEupp(x64emu_t *emu, uintptr_t fnc);
@@ -301,16 +313,27 @@ void iFuipp(x64emu_t *emu, uintptr_t fnc);
 void iFuuff(x64emu_t *emu, uintptr_t fnc);
 void iFuppp(x64emu_t *emu, uintptr_t fnc);
 void iFpiiu(x64emu_t *emu, uintptr_t fnc);
+void iFpiiL(x64emu_t *emu, uintptr_t fnc);
 void iFpiip(x64emu_t *emu, uintptr_t fnc);
+void iFpiup(x64emu_t *emu, uintptr_t fnc);
+void iFpipi(x64emu_t *emu, uintptr_t fnc);
 void iFpipp(x64emu_t *emu, uintptr_t fnc);
 void iFpCCC(x64emu_t *emu, uintptr_t fnc);
 void iFpWWu(x64emu_t *emu, uintptr_t fnc);
+void iFpuip(x64emu_t *emu, uintptr_t fnc);
 void iFpuup(x64emu_t *emu, uintptr_t fnc);
+void iFpuLL(x64emu_t *emu, uintptr_t fnc);
 void iFpupV(x64emu_t *emu, uintptr_t fnc);
 void iFppii(x64emu_t *emu, uintptr_t fnc);
 void iFppiu(x64emu_t *emu, uintptr_t fnc);
+void iFppiL(x64emu_t *emu, uintptr_t fnc);
 void iFppip(x64emu_t *emu, uintptr_t fnc);
+void iFppuu(x64emu_t *emu, uintptr_t fnc);
+void iFppup(x64emu_t *emu, uintptr_t fnc);
+void iFpplp(x64emu_t *emu, uintptr_t fnc);
+void iFppLp(x64emu_t *emu, uintptr_t fnc);
 void iFpppi(x64emu_t *emu, uintptr_t fnc);
+void iFpppL(x64emu_t *emu, uintptr_t fnc);
 void iFpppp(x64emu_t *emu, uintptr_t fnc);
 void IFEpIi(x64emu_t *emu, uintptr_t fnc);
 void uFuuuu(x64emu_t *emu, uintptr_t fnc);
@@ -318,8 +341,11 @@ void uFpCCC(x64emu_t *emu, uintptr_t fnc);
 void uFpuip(x64emu_t *emu, uintptr_t fnc);
 void uFpuuu(x64emu_t *emu, uintptr_t fnc);
 void uFpppi(x64emu_t *emu, uintptr_t fnc);
+void uFpppp(x64emu_t *emu, uintptr_t fnc);
+void LFpuuu(x64emu_t *emu, uintptr_t fnc);
 void LFpLLp(x64emu_t *emu, uintptr_t fnc);
 void pFEupp(x64emu_t *emu, uintptr_t fnc);
+void pFEpip(x64emu_t *emu, uintptr_t fnc);
 void pFEppi(x64emu_t *emu, uintptr_t fnc);
 void pFEppp(x64emu_t *emu, uintptr_t fnc);
 void pFiiiu(x64emu_t *emu, uintptr_t fnc);
@@ -328,8 +354,11 @@ void pFuiii(x64emu_t *emu, uintptr_t fnc);
 void pFpiii(x64emu_t *emu, uintptr_t fnc);
 void pFpipp(x64emu_t *emu, uintptr_t fnc);
 void pFpuii(x64emu_t *emu, uintptr_t fnc);
+void pFplpp(x64emu_t *emu, uintptr_t fnc);
 void pFppiL(x64emu_t *emu, uintptr_t fnc);
+void pFppip(x64emu_t *emu, uintptr_t fnc);
 void pFppuL(x64emu_t *emu, uintptr_t fnc);
+void pFppup(x64emu_t *emu, uintptr_t fnc);
 void pFppLL(x64emu_t *emu, uintptr_t fnc);
 void pFpppi(x64emu_t *emu, uintptr_t fnc);
 void pFpppu(x64emu_t *emu, uintptr_t fnc);
@@ -402,11 +431,20 @@ void iFipppi(x64emu_t *emu, uintptr_t fnc);
 void iFpiiii(x64emu_t *emu, uintptr_t fnc);
 void iFpiiip(x64emu_t *emu, uintptr_t fnc);
 void iFpiiuu(x64emu_t *emu, uintptr_t fnc);
+void iFpiipi(x64emu_t *emu, uintptr_t fnc);
 void iFpipii(x64emu_t *emu, uintptr_t fnc);
 void iFpippp(x64emu_t *emu, uintptr_t fnc);
 void iFpCCCC(x64emu_t *emu, uintptr_t fnc);
+void iFpuuLL(x64emu_t *emu, uintptr_t fnc);
+void iFpuupp(x64emu_t *emu, uintptr_t fnc);
+void iFppiip(x64emu_t *emu, uintptr_t fnc);
+void iFppiup(x64emu_t *emu, uintptr_t fnc);
 void iFppipi(x64emu_t *emu, uintptr_t fnc);
+void iFppipp(x64emu_t *emu, uintptr_t fnc);
 void iFppupi(x64emu_t *emu, uintptr_t fnc);
+void iFpppii(x64emu_t *emu, uintptr_t fnc);
+void iFpppiL(x64emu_t *emu, uintptr_t fnc);
+void iFppppi(x64emu_t *emu, uintptr_t fnc);
 void iFppppp(x64emu_t *emu, uintptr_t fnc);
 void IFppIII(x64emu_t *emu, uintptr_t fnc);
 void uFEppuu(x64emu_t *emu, uintptr_t fnc);
@@ -414,14 +452,21 @@ void uFiuuuu(x64emu_t *emu, uintptr_t fnc);
 void uFuiiiu(x64emu_t *emu, uintptr_t fnc);
 void uFpCCCC(x64emu_t *emu, uintptr_t fnc);
 void uFpuuuu(x64emu_t *emu, uintptr_t fnc);
+void uFppiip(x64emu_t *emu, uintptr_t fnc);
 void uFppppp(x64emu_t *emu, uintptr_t fnc);
 void LFppppp(x64emu_t *emu, uintptr_t fnc);
 void pFuiiiu(x64emu_t *emu, uintptr_t fnc);
 void pFuiipp(x64emu_t *emu, uintptr_t fnc);
+void pFpiiuu(x64emu_t *emu, uintptr_t fnc);
 void pFpuiii(x64emu_t *emu, uintptr_t fnc);
 void pFppipi(x64emu_t *emu, uintptr_t fnc);
+void pFppipp(x64emu_t *emu, uintptr_t fnc);
+void pFppuuu(x64emu_t *emu, uintptr_t fnc);
 void pFppuup(x64emu_t *emu, uintptr_t fnc);
+void pFppLLp(x64emu_t *emu, uintptr_t fnc);
 void pFpppip(x64emu_t *emu, uintptr_t fnc);
+void pFpppuu(x64emu_t *emu, uintptr_t fnc);
+void pFppppp(x64emu_t *emu, uintptr_t fnc);
 void vFEiiipp(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFiiiuil(x64emu_t *emu, uintptr_t fnc);
@@ -470,17 +515,32 @@ void vFppiiii(x64emu_t *emu, uintptr_t fnc);
 void vFppupii(x64emu_t *emu, uintptr_t fnc);
 void vFpppppp(x64emu_t *emu, uintptr_t fnc);
 void iFEpippi(x64emu_t *emu, uintptr_t fnc);
+void iFEppppp(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiii(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiip(x64emu_t *emu, uintptr_t fnc);
+void iFuppipp(x64emu_t *emu, uintptr_t fnc);
 void iFuppppp(x64emu_t *emu, uintptr_t fnc);
+void iFpiiiii(x64emu_t *emu, uintptr_t fnc);
 void iFpiiipp(x64emu_t *emu, uintptr_t fnc);
+void iFppiiuu(x64emu_t *emu, uintptr_t fnc);
 void iFppIppp(x64emu_t *emu, uintptr_t fnc);
+void iFppuiii(x64emu_t *emu, uintptr_t fnc);
+void iFppuiiL(x64emu_t *emu, uintptr_t fnc);
+void iFppuupp(x64emu_t *emu, uintptr_t fnc);
+void iFppupip(x64emu_t *emu, uintptr_t fnc);
+void iFpppipi(x64emu_t *emu, uintptr_t fnc);
+void iFpppipp(x64emu_t *emu, uintptr_t fnc);
+void iFppppii(x64emu_t *emu, uintptr_t fnc);
+void iFpppppi(x64emu_t *emu, uintptr_t fnc);
+void iFpppppL(x64emu_t *emu, uintptr_t fnc);
+void iFpppppp(x64emu_t *emu, uintptr_t fnc);
 void pFEpippp(x64emu_t *emu, uintptr_t fnc);
 void pFiCiiCi(x64emu_t *emu, uintptr_t fnc);
 void pFpiiiiu(x64emu_t *emu, uintptr_t fnc);
 void pFpippip(x64emu_t *emu, uintptr_t fnc);
 void pFpuuuuu(x64emu_t *emu, uintptr_t fnc);
 void pFppiiii(x64emu_t *emu, uintptr_t fnc);
+void pFpppppp(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiuup(x64emu_t *emu, uintptr_t fnc);
 void vFiiupuip(x64emu_t *emu, uintptr_t fnc);
@@ -518,11 +578,25 @@ void vFuffffff(x64emu_t *emu, uintptr_t fnc);
 void vFudddddd(x64emu_t *emu, uintptr_t fnc);
 void vFpipipii(x64emu_t *emu, uintptr_t fnc);
 void vFpddiidd(x64emu_t *emu, uintptr_t fnc);
+void vFpppiiii(x64emu_t *emu, uintptr_t fnc);
+void iFEpppppp(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiip(x64emu_t *emu, uintptr_t fnc);
+void iFpiupiii(x64emu_t *emu, uintptr_t fnc);
 void iFpuuiuui(x64emu_t *emu, uintptr_t fnc);
+void iFpuppppp(x64emu_t *emu, uintptr_t fnc);
+void iFppiiuui(x64emu_t *emu, uintptr_t fnc);
+void iFppiipii(x64emu_t *emu, uintptr_t fnc);
+void iFppipipi(x64emu_t *emu, uintptr_t fnc);
+void iFppipppp(x64emu_t *emu, uintptr_t fnc);
+void iFpppiiii(x64emu_t *emu, uintptr_t fnc);
+void iFpppiiuu(x64emu_t *emu, uintptr_t fnc);
+void iFpppiipi(x64emu_t *emu, uintptr_t fnc);
+void iFppppiii(x64emu_t *emu, uintptr_t fnc);
 void iFppppdpi(x64emu_t *emu, uintptr_t fnc);
 void iFppppppp(x64emu_t *emu, uintptr_t fnc);
 void uFuippppp(x64emu_t *emu, uintptr_t fnc);
+void pFpppppuu(x64emu_t *emu, uintptr_t fnc);
+void pFppppppp(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiuuip(x64emu_t *emu, uintptr_t fnc);
 void vFiupuiuup(x64emu_t *emu, uintptr_t fnc);
 void vFiupuuuup(x64emu_t *emu, uintptr_t fnc);
@@ -543,15 +617,21 @@ void vFuuuipipp(x64emu_t *emu, uintptr_t fnc);
 void vFuuuuuuuu(x64emu_t *emu, uintptr_t fnc);
 void vFuuuuufff(x64emu_t *emu, uintptr_t fnc);
 void vFffffffff(x64emu_t *emu, uintptr_t fnc);
+void vFppppiipi(x64emu_t *emu, uintptr_t fnc);
 void iFEpippppp(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void iFiiupiupi(x64emu_t *emu, uintptr_t fnc);
 void iFuiifpppp(x64emu_t *emu, uintptr_t fnc);
 void iFpupppppp(x64emu_t *emu, uintptr_t fnc);
 void iFppIIIppp(x64emu_t *emu, uintptr_t fnc);
+void iFpppiippp(x64emu_t *emu, uintptr_t fnc);
 void iFpppipipi(x64emu_t *emu, uintptr_t fnc);
+void iFpppipppp(x64emu_t *emu, uintptr_t fnc);
+void iFppppiipi(x64emu_t *emu, uintptr_t fnc);
+void iFpppppppp(x64emu_t *emu, uintptr_t fnc);
 void uFuipppppp(x64emu_t *emu, uintptr_t fnc);
 void pFuiiiuuuu(x64emu_t *emu, uintptr_t fnc);
+void pFpppuuLLu(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiuip(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiuup(x64emu_t *emu, uintptr_t fnc);
@@ -567,10 +647,16 @@ void vFuupiuiuuf(x64emu_t *emu, uintptr_t fnc);
 void vFuffffffff(x64emu_t *emu, uintptr_t fnc);
 void vFffuuuufff(x64emu_t *emu, uintptr_t fnc);
 void vFddddddddd(x64emu_t *emu, uintptr_t fnc);
+void vFpppppippp(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void iFiiiipiiip(x64emu_t *emu, uintptr_t fnc);
 void iFdddpppppp(x64emu_t *emu, uintptr_t fnc);
+void iFppiuiippL(x64emu_t *emu, uintptr_t fnc);
+void iFpppiiuuii(x64emu_t *emu, uintptr_t fnc);
+void iFppppppppp(x64emu_t *emu, uintptr_t fnc);
+void pFEppiiuuLi(x64emu_t *emu, uintptr_t fnc);
 void pFpiiiiuuuu(x64emu_t *emu, uintptr_t fnc);
+void pFppiiuuuLL(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiiiiiu(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiuup(x64emu_t *emu, uintptr_t fnc);
@@ -587,6 +673,10 @@ void vFuffiiffiip(x64emu_t *emu, uintptr_t fnc);
 void vFuddiiddiip(x64emu_t *emu, uintptr_t fnc);
 void vFffffffffff(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
+void iFpuupiuiipp(x64emu_t *emu, uintptr_t fnc);
+void iFppppiiuuii(x64emu_t *emu, uintptr_t fnc);
+void pFppuiipuuii(x64emu_t *emu, uintptr_t fnc);
+void pFpppppppppp(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiuip(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiuup(x64emu_t *emu, uintptr_t fnc);
@@ -598,20 +688,30 @@ void vFuufffffffff(x64emu_t *emu, uintptr_t fnc);
 void vFuuddiiddiip(x64emu_t *emu, uintptr_t fnc);
 void vFuffffffffff(x64emu_t *emu, uintptr_t fnc);
 void vFpipipiipiii(x64emu_t *emu, uintptr_t fnc);
+void iFEppppiiiiuu(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
+void iFppppiiuuiiL(x64emu_t *emu, uintptr_t fnc);
+void pFEppuiipuuii(x64emu_t *emu, uintptr_t fnc);
 void vFuuiiiiiiiuip(x64emu_t *emu, uintptr_t fnc);
 void vFuuiiiiiiiuup(x64emu_t *emu, uintptr_t fnc);
 void vFuuuuuuuuuuuu(x64emu_t *emu, uintptr_t fnc);
 void vFffffffffffff(x64emu_t *emu, uintptr_t fnc);
+void iFpppllipppppp(x64emu_t *emu, uintptr_t fnc);
+void pFEppiiuuuipii(x64emu_t *emu, uintptr_t fnc);
+void pFppiiuuuiupLp(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiiiuup(x64emu_t *emu, uintptr_t fnc);
 void vFuuuuuuuuuuuuu(x64emu_t *emu, uintptr_t fnc);
 void vFuffffffffffff(x64emu_t *emu, uintptr_t fnc);
 void iFddddpppddpppp(x64emu_t *emu, uintptr_t fnc);
+void iFpippuuuiipppp(x64emu_t *emu, uintptr_t fnc);
+void pFppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void vFuffiiffiiffiip(x64emu_t *emu, uintptr_t fnc);
 void vFuddiiddiiddiip(x64emu_t *emu, uintptr_t fnc);
 void vFuuiiiiuuiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFfffffffffffffff(x64emu_t *emu, uintptr_t fnc);
+void uFpppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void vFppuiiiiipuiiiiiiii(x64emu_t *emu, uintptr_t fnc);
+void pFipppppppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 
 #if defined(HAVE_LD80BITS)
 void DFD(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibx11.c b/src/wrapped/wrappedlibx11.c
new file mode 100755
index 00000000..0db63472
--- /dev/null
+++ b/src/wrapped/wrappedlibx11.c
@@ -0,0 +1,821 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box64context.h"
+#include "emu/x64emu_private.h"
+
+const char* libx11Name = "libX11.so.6";
+#define LIBNAME libx11
+
+extern int x11threads;
+extern int x11glx;
+
+typedef int (*XErrorHandler)(void *, void *);
+void* my_XSetErrorHandler(x64emu_t* t, XErrorHandler handler);
+typedef int (*XIOErrorHandler)(void *);
+void* my_XSetIOErrorHandler(x64emu_t* t, XIOErrorHandler handler);
+void* my_XESetCloseDisplay(x64emu_t* emu, void* display, int32_t extension, void* handler);
+typedef int (*WireToEventProc)(void*, void*, void*);
+typedef int(*EventHandler) (void*,void*,void*);
+int32_t my_XIfEvent(x64emu_t* emu, void* d,void* ev, EventHandler h, void* arg);
+
+typedef struct XImageSave_s {
+    int   anyEmu;
+    void* create;
+    void* destroy;
+    void* get;
+    void* put;
+    void* sub;
+    void* add;
+} XImageSave_t;
+
+typedef struct ximage_s {
+    void*(*create_image)(
+            void*           /* display */,
+            void*           /* visual */,
+            uint32_t        /* depth */,
+            int32_t         /* format */,
+            int32_t         /* offset */,
+            void*           /* data */,
+            uint32_t        /* width */,
+            uint32_t        /* height */,
+            int32_t         /* bitmap_pad */,
+            int32_t         /* bytes_per_line */);
+    int32_t (*destroy_image)        (void*);
+    uintptr_t (*get_pixel)           (void*, int32_t, int32_t);
+    int32_t (*put_pixel)            (void*, int32_t, int32_t, uintptr_t);
+    void*(*sub_image)    (void*, int32_t, int32_t, uint32_t, uint32_t); //sub_image return a new XImage that need bridging => custom wrapper
+    int32_t (*add_pixel)            (void*, intptr_t);
+} ximage_t;
+
+typedef struct _XImage {
+    int32_t width, height;          /* size of image */
+    int32_t xoffset;                /* number of pixels offset in X direction */
+    int32_t format;                 /* XYBitmap, XYPixmap, ZPixmap */
+    void*   data;                   /* pointer to image data */
+    int32_t byte_order;             /* data byte order, LSBFirst, MSBFirst */
+    int32_t bitmap_unit;            /* quant. of scanline 8, 16, 32 */
+    int32_t bitmap_bit_order;       /* LSBFirst, MSBFirst */
+    int32_t bitmap_pad;             /* 8, 16, 32 either XY or ZPixmap */
+    int32_t depth;                  /* depth of image */
+    int32_t bytes_per_line;         /* accelarator to next line */
+    int32_t bits_per_pixel;         /* bits per pixel (ZPixmap) */
+    uintptr_t red_mask;             /* bits in z arrangment */
+    uintptr_t green_mask;
+    uintptr_t blue_mask;
+    void*    obdata;                 /* hook for the object routines to hang on */
+    ximage_t f;
+} XImage;
+
+typedef uint32_t (*uFv_t)(void);
+typedef void (*vFp_t)(void*);
+typedef void* (*pFp_t)(void*);
+typedef void (*vFpp_t)(void*, void*);
+typedef void* (*pFpp_t)(void*, void*);
+typedef void* (*pFpip_t)(void*, int32_t, void*);
+typedef int32_t (*iFp_t)(void*);
+typedef int32_t (*iFpi_t)(void*, int32_t);
+typedef int32_t (*iFpl_t)(void*, intptr_t);
+typedef int32_t (*iFppp_t)(void*, void*, void*);
+typedef int32_t (*iFppu_t)(void*, void*, uint32_t);
+typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
+typedef uint32_t (*uFpii_t)(void*, int32_t, int32_t);
+typedef uintptr_t (*LFpii_t)(void*, int32_t, int32_t);
+typedef int32_t (*iFpiiu_t)(void*, int32_t, int32_t, uint32_t);
+typedef int32_t (*iFpiiL_t)(void*, int32_t, int32_t, uintptr_t);
+typedef void* (*pFppup_t)(void*, void*, uint32_t, void*);
+typedef void* (*pFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t);
+typedef void* (*pFppiiuuui_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, int32_t);
+typedef void* (*pFppuiipuuii_t)(void*, void*, uint32_t, int32_t, int32_t, void*, uint32_t, uint32_t, int32_t, int32_t);
+typedef void* (*pFppiiuuuipii_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, int32_t, void*, int32_t, int32_t);
+typedef int32_t (*iFppppiiiiuu_t)(void*, void*, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
+typedef int (*iFppppp_t)(void*, void*, void*, void*, void*);
+typedef int (*iFpppppp_t)(void*, void*, void*, void*, void*, void*);
+
+#define SUPER() \
+    GO(XSetErrorHandler, pFp_t)             \
+    GO(XSetIOErrorHandler, pFp_t)           \
+    GO(XESetError, pFpip_t)                 \
+    GO(XESetCloseDisplay, pFpip_t)          \
+    GO(XIfEvent, iFpppp_t)                  \
+    GO(XCheckIfEvent, iFpppp_t)             \
+    GO(XPeekIfEvent, iFpppp_t)              \
+    GO(XCreateImage, pFppuiipuuii_t)        \
+    GO(XInitImage, iFp_t)                   \
+    GO(XGetImage, pFppiiuuui_t)             \
+    GO(XPutImage, iFppppiiiiuu_t)           \
+    GO(XGetSubImage, pFppiiuuuipii_t)       \
+    GO(XDestroyImage, vFp_t)                \
+    GO(_XDeqAsyncHandler, vFpp_t)           \
+    GO(XLoadQueryFont, pFpp_t)              \
+    GO(XCreateGC, pFppup_t)                 \
+    GO(XSetBackground, iFppu_t)             \
+    GO(XSetForeground, iFppu_t)             \
+    GO(XESetWireToEvent, pFpip_t)           \
+    GO(XESetEventToWire, pFpip_t)           \
+    GO(XCloseDisplay, iFp_t)                \
+    GO(XOpenDisplay, pFp_t)                 \
+    GO(XInitThreads, uFv_t)                 \
+    GO(XRegisterIMInstantiateCallback, iFpppppp_t)      \
+    GO(XUnregisterIMInstantiateCallback, iFpppppp_t)    \
+    GO(XQueryExtension, iFppppp_t)          \
+    GO(XAddConnectionWatch, iFppp_t)        \
+    GO(XRemoveConnectionWatch, iFppp_t)     \
+
+typedef struct x11_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} x11_my_t;
+
+void* getX11My(library_t* lib)
+{
+    x11_my_t* my = (x11_my_t*)calloc(1, sizeof(x11_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+
+void freeX11My(void* lib)
+{
+    // x11_my_t *my = (x11_my_t *)lib;
+}
+#undef SUPER
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)   \
+GO(5)   \
+GO(6)   \
+GO(7)   \
+GO(8)   \
+GO(9)   \
+GO(10)  \
+GO(11)  \
+GO(12)  \
+GO(13)  \
+GO(14)  \
+GO(15)  
+
+// wire_to_event
+#define GO(A)   \
+static uintptr_t my_wire_to_event_fct_##A = 0;                      \
+static int my_wire_to_event_##A(void* dpy, void* re, void* event)   \
+{                                                                   \
+    return (int)RunFunction(my_context, my_wire_to_event_fct_##A, 3, dpy, re, event);\
+}
+SUPER()
+#undef GO
+static void* findwire_to_eventFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_wire_to_event_fct_##A == (uintptr_t)fct) return my_wire_to_event_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_wire_to_event_fct_##A == 0) {my_wire_to_event_fct_##A = (uintptr_t)fct; return my_wire_to_event_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 wire_to_event callback\n");
+    return NULL;
+}
+static void* reverse_wire_to_eventFct(library_t* lib, void* fct)
+{
+    if(!fct) return fct;
+    if(CheckBridged(lib->priv.w.bridge, fct))
+        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    #define GO(A) if(my_wire_to_event_##A == fct) return (void*)my_wire_to_event_fct_##A;
+    SUPER()
+    #undef GO
+    return (void*)AddBridge(lib->priv.w.bridge, iFppp, fct, 0);
+}
+
+// event_to_wire
+#define GO(A)   \
+static uintptr_t my_event_to_wire_fct_##A = 0;                      \
+static int my_event_to_wire_##A(void* dpy, void* re, void* event)   \
+{                                                                   \
+    return (int)RunFunction(my_context, my_event_to_wire_fct_##A, 3, dpy, re, event);\
+}
+SUPER()
+#undef GO
+static void* findevent_to_wireFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_event_to_wire_fct_##A == (uintptr_t)fct) return my_event_to_wire_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_event_to_wire_fct_##A == 0) {my_event_to_wire_fct_##A = (uintptr_t)fct; return my_event_to_wire_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 event_to_wire callback\n");
+    return NULL;
+}
+static void* reverse_event_to_wireFct(library_t* lib, void* fct)
+{
+    if(!fct) return fct;
+    if(CheckBridged(lib->priv.w.bridge, fct))
+        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    #define GO(A) if(my_event_to_wire_##A == fct) return (void*)my_event_to_wire_fct_##A;
+    SUPER()
+    #undef GO
+    return (void*)AddBridge(lib->priv.w.bridge, iFppp, fct, 0);
+}
+
+// error_handler
+#define GO(A)   \
+static uintptr_t my_error_handler_fct_##A = 0;                      \
+static int my_error_handler_##A(void* dpy, void* error)   \
+{                                                                   \
+    return (int)RunFunction(my_context, my_error_handler_fct_##A, 2, dpy, error);\
+}
+SUPER()
+#undef GO
+static void* finderror_handlerFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_error_handler_fct_##A == (uintptr_t)fct) return my_error_handler_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_error_handler_fct_##A == 0) {my_error_handler_fct_##A = (uintptr_t)fct; return my_error_handler_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 error_handler callback\n");
+    return NULL;
+}
+static void* reverse_error_handlerFct(library_t* lib, void* fct)
+{
+    if(!fct) return fct;
+    if(CheckBridged(lib->priv.w.bridge, fct))
+        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    #define GO(A) if(my_error_handler_##A == fct) return (void*)my_error_handler_fct_##A;
+    SUPER()
+    #undef GO
+    return (void*)AddBridge(lib->priv.w.bridge, iFpp, fct, 0);
+}
+
+// ioerror_handler
+#define GO(A)   \
+static uintptr_t my_ioerror_handler_fct_##A = 0;                      \
+static int my_ioerror_handler_##A(void* dpy)   \
+{                                                                   \
+    return (int)RunFunction(my_context, my_ioerror_handler_fct_##A, 1, dpy);\
+}
+SUPER()
+#undef GO
+static void* findioerror_handlerFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_ioerror_handler_fct_##A == (uintptr_t)fct) return my_ioerror_handler_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_ioerror_handler_fct_##A == 0) {my_ioerror_handler_fct_##A = (uintptr_t)fct; return my_ioerror_handler_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 ioerror_handler callback\n");
+    return NULL;
+}
+static void* reverse_ioerror_handlerFct(library_t* lib, void* fct)
+{
+    if(!fct) return fct;
+    if(CheckBridged(lib->priv.w.bridge, fct))
+        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    #define GO(A) if(my_ioerror_handler_##A == fct) return (void*)my_ioerror_handler_fct_##A;
+    SUPER()
+    #undef GO
+    return (void*)AddBridge(lib->priv.w.bridge, iFp, fct, 0);
+}
+
+// exterror_handler
+#define GO(A)   \
+static uintptr_t my_exterror_handler_fct_##A = 0;                      \
+static int my_exterror_handler_##A(void* dpy, void* err, void* codes, int* ret_code)   \
+{                                                                   \
+    return (int)RunFunction(my_context, my_exterror_handler_fct_##A, 4, dpy, err, codes, ret_code);\
+}
+SUPER()
+#undef GO
+static void* findexterror_handlerFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_exterror_handler_fct_##A == (uintptr_t)fct) return my_exterror_handler_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_exterror_handler_fct_##A == 0) {my_exterror_handler_fct_##A = (uintptr_t)fct; return my_exterror_handler_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 exterror_handler callback\n");
+    return NULL;
+}
+static void* reverse_exterror_handlerFct(library_t* lib, void* fct)
+{
+    if(!fct) return fct;
+    if(CheckBridged(lib->priv.w.bridge, fct))
+        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    #define GO(A) if(my_exterror_handler_##A == fct) return (void*)my_exterror_handler_fct_##A;
+    SUPER()
+    #undef GO
+    return (void*)AddBridge(lib->priv.w.bridge, iFpppp, fct, 0);
+}
+
+// close_display
+#define GO(A)   \
+static uintptr_t my_close_display_fct_##A = 0;                      \
+static int my_close_display_##A(void* dpy, void* codes)   \
+{                                                                   \
+    return (int)RunFunction(my_context, my_close_display_fct_##A, 2, dpy, codes);\
+}
+SUPER()
+#undef GO
+static void* findclose_displayFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_close_display_fct_##A == (uintptr_t)fct) return my_close_display_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_close_display_fct_##A == 0) {my_close_display_fct_##A = (uintptr_t)fct; return my_close_display_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 close_display callback\n");
+    return NULL;
+}
+static void* reverse_close_displayFct(library_t* lib, void* fct)
+{
+    if(!fct) return fct;
+    if(CheckBridged(lib->priv.w.bridge, fct))
+        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    #define GO(A) if(my_close_display_##A == fct) return (void*)my_close_display_fct_##A;
+    SUPER()
+    #undef GO
+    return (void*)AddBridge(lib->priv.w.bridge, iFpp, fct, 0);
+}
+
+// register_im
+#define GO(A)   \
+static uintptr_t my_register_im_fct_##A = 0;                        \
+static void my_register_im_##A(void* dpy, void* u, void* d)         \
+{                                                                   \
+    RunFunction(my_context, my_register_im_fct_##A, 3, dpy, u, d);  \
+}
+SUPER()
+#undef GO
+static void* findregister_imFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_register_im_fct_##A == (uintptr_t)fct) return my_register_im_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_register_im_fct_##A == 0) {my_register_im_fct_##A = (uintptr_t)fct; return my_register_im_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 register_im callback\n");
+    return NULL;
+}
+static void* reverse_register_imFct(library_t* lib, void* fct)
+{
+    if(!fct) return fct;
+    if(CheckBridged(lib->priv.w.bridge, fct))
+        return (void*)CheckBridged(lib->priv.w.bridge, fct);
+    #define GO(A) if(my_register_im_##A == fct) return (void*)my_register_im_fct_##A;
+    SUPER()
+    #undef GO
+    return (void*)AddBridge(lib->priv.w.bridge, iFppp, fct, 0);
+}
+
+// XConnectionWatchProc
+#define GO(A)   \
+static uintptr_t my_XConnectionWatchProc_fct_##A = 0;                               \
+static void my_XConnectionWatchProc_##A(void* dpy, void* data, int op, void* d)     \
+{                                                                                   \
+    RunFunction(my_context, my_XConnectionWatchProc_fct_##A, 4, dpy, data, op, d);  \
+}
+SUPER()
+#undef GO
+static void* findXConnectionWatchProcFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_XConnectionWatchProc_fct_##A == (uintptr_t)fct) return my_XConnectionWatchProc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_XConnectionWatchProc_fct_##A == 0) {my_XConnectionWatchProc_fct_##A = (uintptr_t)fct; return my_XConnectionWatchProc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 XConnectionWatchProc callback\n");
+    return NULL;
+}
+// xifevent
+#define GO(A)   \
+static uintptr_t my_xifevent_fct_##A = 0;                                   \
+static int my_xifevent_##A(void* dpy, void* event, void* d)                 \
+{                                                                           \
+    return RunFunction(my_context, my_xifevent_fct_##A, 3, dpy, event, d);  \
+}
+SUPER()
+#undef GO
+static void* findxifeventFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_xifevent_fct_##A == (uintptr_t)fct) return my_xifevent_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_xifevent_fct_##A == 0) {my_xifevent_fct_##A = (uintptr_t)fct; return my_xifevent_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 xifevent callback\n");
+    return NULL;
+}
+// XInternalAsyncHandler
+#define GO(A)   \
+static uintptr_t my_XInternalAsyncHandler_fct_##A = 0;                                              \
+static int my_XInternalAsyncHandler_##A(void* dpy, void* rep, void* buf, int len, void* data)       \
+{                                                                                                   \
+    return RunFunction(my_context, my_XInternalAsyncHandler_fct_##A, 5, dpy, rep, buf, len, data);  \
+}
+SUPER()
+#undef GO
+static void* findXInternalAsyncHandlerFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_XInternalAsyncHandler_fct_##A == (uintptr_t)fct) return my_XInternalAsyncHandler_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_XInternalAsyncHandler_fct_##A == 0) {my_XInternalAsyncHandler_fct_##A = (uintptr_t)fct; return my_XInternalAsyncHandler_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libX11 XInternalAsyncHandler callback\n");
+    return NULL;
+}
+#undef SUPER
+
+void* my_XCreateImage(x64emu_t* emu, void* disp, void* vis, uint32_t depth, int32_t fmt, int32_t off
+                    , void* data, uint32_t w, uint32_t h, int32_t pad, int32_t bpl);
+
+int32_t my_XInitImage(x64emu_t* emu, void* img);
+
+void* my_XGetImage(x64emu_t* emu, void* disp, void* drawable, int32_t x, int32_t y
+                    , uint32_t w, uint32_t h, uint32_t plane, int32_t fmt);
+
+int32_t my_XPutImage(x64emu_t* emu, void* disp, void* drawable, void* gc, void* image
+                    , int32_t src_x, int32_t src_y, int32_t dst_x, int32_t dst_y
+                    , uint32_t w, uint32_t h);
+
+void* my_XGetSubImage(x64emu_t* emu, void* disp, void* drawable
+                    , int32_t x, int32_t y
+                    , uint32_t w, uint32_t h, uint32_t plane, int32_t fmt
+                    , void* image, int32_t dst_x, int32_t dst_y);
+
+void my_XDestroyImage(x64emu_t* emu, void* image);
+
+#ifdef PANDORA
+void* my_XLoadQueryFont(x64emu_t* emu, void* d, void* name);
+#endif
+
+void* my_XVaCreateNestedList(int dummy, void* p);
+
+EXPORT void* my_XSetErrorHandler(x64emu_t* emu, XErrorHandler handler)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    void* ret = my->XSetErrorHandler(finderror_handlerFct(handler));
+    return reverse_error_handlerFct(lib, ret);
+}
+
+EXPORT void* my_XSetIOErrorHandler(x64emu_t* emu, XIOErrorHandler handler)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    void* ret = my->XSetIOErrorHandler(findioerror_handlerFct(handler));
+    return reverse_ioerror_handlerFct(lib, ret);
+}
+
+EXPORT void* my_XESetError(x64emu_t* emu, void* display, int32_t extension, void* handler)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    void* ret = my->XESetError(display, extension, findexterror_handlerFct(handler));
+    return reverse_exterror_handlerFct(lib, ret);
+}
+
+EXPORT void* my_XESetCloseDisplay(x64emu_t* emu, void* display, int32_t extension, void* handler)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    void* ret = my->XESetCloseDisplay(display, extension, findclose_displayFct(handler));
+    return reverse_close_displayFct(lib, ret);
+}
+
+EXPORT int32_t my_XIfEvent(x64emu_t* emu, void* d,void* ev, EventHandler h, void* arg)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    int32_t ret = my->XIfEvent(d, ev, findxifeventFct(h), arg);
+    return ret;
+}
+
+EXPORT int32_t my_XCheckIfEvent(x64emu_t* emu, void* d,void* ev, EventHandler h, void* arg)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    int32_t ret = my->XCheckIfEvent(d, ev, findxifeventFct(h), arg);
+    return ret;
+}
+
+EXPORT int32_t my_XPeekIfEvent(x64emu_t* emu, void* d,void* ev, EventHandler h, void* arg)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    int32_t ret = my->XPeekIfEvent(d, ev, findxifeventFct(h), arg);
+    return ret;
+}
+
+void sub_image_wrapper(x64emu_t *emu, uintptr_t fnc);
+typedef void* (*sub_image_wrapper_t)(void*, int32_t, int32_t, uint32_t, uint32_t);
+
+
+void BridgeImageFunc(x64emu_t *emu, XImage *img)
+{
+    bridge_t* system = emu->context->system;
+
+    #define GO(A, W) \
+    fnc = CheckBridged(system, img->f.A); \
+    if(!fnc) fnc = AddAutomaticBridge(emu, system, W, img->f.A, 0); \
+    img->f.A = (W##_t)fnc;
+
+    uintptr_t fnc;
+
+    GO(create_image, pFppuiipuuii)
+    GO(destroy_image, iFp)
+    GO(get_pixel, LFpii)
+    GO(put_pixel, iFpiiL)
+    GO(sub_image, sub_image_wrapper)
+    GO(add_pixel, iFpl)
+    #undef GO
+}
+
+void UnbridgeImageFunc(x64emu_t *emu, XImage *img)
+{
+    #define GO(A, W) \
+    fnc = GetNativeFnc((uintptr_t)img->f.A); \
+    if(fnc) \
+        img->f.A = (W##_t)fnc;
+
+    void* fnc;
+
+    GO(create_image, pFppuiipuuii)
+    GO(destroy_image, iFp)
+    GO(get_pixel, LFpii)
+    GO(put_pixel, iFpiiL)
+    GO(sub_image, sub_image_wrapper)
+    GO(add_pixel, iFpl)
+    #undef GO
+}
+
+void sub_image_wrapper(x64emu_t *emu, uintptr_t fnc)
+{
+    pFpiiuu_t fn = (pFpiiuu_t)fnc; 
+    void* img = fn(*(void**)(R_RDI), *(int32_t*)(R_RSI), *(int32_t*)(R_RDX), *(uint32_t*)(R_RCX), *(uint32_t*)(R_R8));
+    BridgeImageFunc(emu, (XImage*)img);
+    R_EAX=(uintptr_t)img;
+}
+
+
+EXPORT void* my_XCreateImage(x64emu_t* emu, void* disp, void* vis, uint32_t depth, int32_t fmt, int32_t off
+                    , void* data, uint32_t w, uint32_t h, int32_t pad, int32_t bpl)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    XImage *img = my->XCreateImage(disp, vis, depth, fmt, off, data, w, h, pad, bpl);
+    if(!img)
+        return img;
+    // bridge all access functions...
+    BridgeImageFunc(emu, img);
+    return img;
+}
+
+EXPORT int32_t my_XInitImage(x64emu_t* emu, void* img)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    int ret = my->XInitImage(img);
+    // bridge all access functions...
+    BridgeImageFunc(emu, img);
+    return ret;
+}
+
+EXPORT void* my_XGetImage(x64emu_t* emu, void* disp, void* drawable, int32_t x, int32_t y
+                    , uint32_t w, uint32_t h, uint32_t plane, int32_t fmt)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    XImage *img = my->XGetImage(disp, drawable, x, y, w, h, plane, fmt);
+    if(!img)
+        return img;
+    // bridge all access functions...
+    BridgeImageFunc(emu, img);
+    return img;
+}
+
+EXPORT int32_t my_XPutImage(x64emu_t* emu, void* disp, void* drawable, void* gc, void* image
+                    , int32_t src_x, int32_t src_y, int32_t dst_x, int32_t dst_y
+                    , uint32_t w, uint32_t h)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    UnbridgeImageFunc(emu, (XImage*)image);
+    int32_t r = my->XPutImage(disp, drawable, gc, image, src_x, src_y, dst_x, dst_y, w, h);
+    // bridge all access functions...
+    BridgeImageFunc(emu, (XImage*)image);
+    return r;
+}
+
+EXPORT void* my_XGetSubImage(x64emu_t* emu, void* disp, void* drawable
+                    , int32_t x, int32_t y
+                    , uint32_t w, uint32_t h, uint32_t plane, int32_t fmt
+                    , void* image, int32_t dst_x, int32_t dst_y)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    UnbridgeImageFunc(emu, (XImage*)image);
+    XImage *img = my->XGetSubImage(disp, drawable, x, y, w, h, plane, fmt, image, dst_x, dst_y);
+    if(img)
+        BridgeImageFunc(emu, img);
+
+    BridgeImageFunc(emu, (XImage*)image);
+    return img;
+}
+
+EXPORT void my_XDestroyImage(x64emu_t* emu, void* image)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    UnbridgeImageFunc(emu, (XImage*)image);
+    my->XDestroyImage(image);
+}
+
+typedef struct xintasync_s {
+    struct xintasync_s *next;
+    int (*handler)(
+                    void*,
+                    void*,
+                    void*,
+                    int,
+                    void*
+                    );
+    void* data;
+} xintasync_t;
+
+EXPORT void my__XDeqAsyncHandler(x64emu_t* emu, void* cb, void* data)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    my->_XDeqAsyncHandler(findXInternalAsyncHandlerFct(cb), data);
+}
+#if 0
+typedef struct my_XIMArg_s {
+    char    *name;
+    void    *value;
+} my_XIMArg_t;
+#define my_XNVaNestedList                       "XNVaNestedList"
+
+EXPORT void* my_XVaCreateNestedList(int dummy, void* b)
+{
+    // need to create a similar function here...
+    void* p = b;
+    int n = 0;
+    while(p++) ++n;
+    void** ret = (void**)malloc(sizeof(void*)*n);
+    p = b;
+    n = 0;
+    while(p++)
+        ret[n++] = p;
+    return ret;
+}
+#endif
+
+EXPORT void* my_XESetWireToEvent(x64emu_t* emu, void* display, int32_t event_number, void* proc)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    void* ret = NULL;
+
+    ret = my->XESetWireToEvent(display, event_number, findwire_to_eventFct(proc));
+
+    return reverse_wire_to_eventFct(lib, ret);
+}
+EXPORT void* my_XESetEventToWire(x64emu_t* emu, void* display, int32_t event_number, void* proc)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+    void* ret = NULL;
+
+    ret = my->XESetEventToWire(display, event_number, findevent_to_wireFct(proc));
+
+    return reverse_event_to_wireFct(lib, ret);
+}
+
+EXPORT int my_XCloseDisplay(x64emu_t* emu, void* display)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    int ret = my->XCloseDisplay(display);
+    return ret;
+}
+
+EXPORT void* my_XOpenDisplay(x64emu_t* emu, void* d)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    void* ret = my->XOpenDisplay(d);
+    return ret;
+}
+
+EXPORT int my_XRegisterIMInstantiateCallback(x64emu_t* emu, void* d, void* db, void* res_name, void* res_class, void* cb, void* data)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    return my->XRegisterIMInstantiateCallback(d, db, res_name, res_class, findregister_imFct(cb), data);
+}
+    
+EXPORT int my_XUnregisterIMInstantiateCallback(x64emu_t* emu, void* d, void* db, void* res_name, void* res_class, void* cb, void* data)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    return my->XUnregisterIMInstantiateCallback(d, db, res_name, res_class, reverse_register_imFct(lib, cb), data);
+}
+
+EXPORT int my_XQueryExtension(x64emu_t* emu, void* display, char* name, int* major, int* first_event, int* first_error)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    int ret = my->XQueryExtension(display, name, major, first_event, first_error);
+    if(!ret && name && !strcmp(name, "GLX") && x11glx) {
+        // hack to force GLX to be accepted, even if not present
+        // left major and first_XXX to default...
+        ret = 1;
+    }
+    return ret;
+}
+
+EXPORT int my_XAddConnectionWatch(x64emu_t* emu, void* display, char* f, void* data)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    return my->XAddConnectionWatch(display, findXConnectionWatchProcFct(f), data);
+}
+
+EXPORT int my_XRemoveConnectionWatch(x64emu_t* emu, void* display, char* f, void* data)
+{
+    library_t* lib = emu->context->x11lib;
+    x11_my_t *my = (x11_my_t *)lib->priv.w.p2;
+
+    return my->XRemoveConnectionWatch(display, findXConnectionWatchProcFct(f), data);
+}
+
+#define CUSTOM_INIT                 \
+    box64->x11lib = lib;            \
+    lib->priv.w.p2 = getX11My(lib); \
+    if(x11threads) ((x11_my_t*)lib->priv.w.p2)->XInitThreads();
+
+#define CUSTOM_FINI \
+    freeX11My(lib->priv.w.p2); \
+    free(lib->priv.w.p2);   \
+    ((box64context_t*)(lib->context))->x11lib = NULL; \
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibx11_private.h b/src/wrapped/wrappedlibx11_private.h
new file mode 100755
index 00000000..ac6270b7
--- /dev/null
+++ b/src/wrapped/wrappedlibx11_private.h
@@ -0,0 +1,1093 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+// all those bss stuff are suspicious
+//DATAB(__bss_end__, 4)
+//DATAB(_bss_end__, 4)
+//DATAB(__bss_start, 4)
+//DATAB(__bss_start__, 4)
+//DATA(__data_start, 4)
+//DATA(_edata, 4)
+//DATAB(_end, 4)
+//DATAB(__end__, 4)
+// __exidx_end  // type r
+// __exidx_start    // type r
+// _fini
+// _init
+// KeySymToUcs4
+DATAB(_qfree, 4)
+// _Utf8GetConvByName
+//GO(XActivateScreenSaver
+GOM(XAddConnectionWatch, iFEppp)
+GO(XAddExtension, pFp)
+//GO(XAddHost
+//GO(XAddHosts
+//GO(XAddPixel
+//GO(XAddToExtensionList
+//GO(XAddToSaveSet
+GO(XAllocClassHint, pFv)
+GO(XAllocColor, iFppp)
+GO(XAllocColorCells, iFppipipi)
+//GO(XAllocColorPlanes
+//GO(XAllocIconSize
+// _XAllocID
+// _XAllocIDs
+GO(XAllocNamedColor, iFppppp)
+// _XAllocScratch
+GO(XAllocSizeHints, pFv)
+//GO(XAllocStandardColormap
+// _XAllocTemp
+GO(XAllocWMHints, pFv)
+//GO(XAllowEvents
+GO(XAllPlanes, LFv)
+// _XAsyncErrorHandler
+GO(XAutoRepeatOff, iFp)
+GO(XAutoRepeatOn, iFp)
+GO(XBaseFontNameListOfFontSet, pFp)
+GO(XBell, iFpi)
+//GO(XBitmapBitOrder
+//GO(XBitmapPad
+//GO(XBitmapUnit
+GO(XBlackPixel, LFpi)
+//GO(XBlackPixelOfScreen
+//GO(XCellsOfScreen
+GO(XChangeActivePointerGrab, vFpupp)
+GO(XChangeGC, iFppLp)
+GO(XChangeKeyboardControl, iFpLp)
+GO(XChangeKeyboardMapping, iFpiipi)
+GO(XChangePointerControl, iFpiiiii)
+GO(XChangeProperty, iFppppiipi)
+//GO(XChangeSaveSet
+GO(XChangeWindowAttributes, iFppLp)
+GOM(XCheckIfEvent, iFEpppp)
+GO(XCheckMaskEvent, iFplp)
+GO(XCheckTypedEvent, iFpip)
+GO(XCheckTypedWindowEvent, iFppip)
+GO(XCheckWindowEvent, iFpplp)
+//GO(XCirculateSubwindows
+//GO(XCirculateSubwindowsDown
+//GO(XCirculateSubwindowsUp
+GO(XClearArea, iFppiiuui)
+GO(XClearWindow, iFpp)
+GO(XClipBox, iFpp)
+GOM(XCloseDisplay, iFEp)
+GO(XCloseIM, iFp)
+// _XCloseLC
+//GO(XCloseOM
+// _XcmsAddCmapRec
+//GO(XcmsAddColorSpace
+//GO(XcmsAddFunctionSet
+//GO(XcmsAllocColor
+//GO(XcmsAllocNamedColor
+// _XcmsArcTangent
+//GO(XcmsCCCOfColormap
+//GO(XcmsCIELabClipab
+//GO(XcmsCIELabClipL
+//GO(XcmsCIELabClipLab
+DATA(XcmsCIELabColorSpace, 6*sizeof(void*))
+// _XcmsCIELab_prefix   // type r
+//GO(XcmsCIELabQueryMaxC
+//GO(XcmsCIELabQueryMaxL
+//GO(XcmsCIELabQueryMaxLC
+// _XcmsCIELabQueryMaxLCRGB
+//GO(XcmsCIELabQueryMinL
+//GO(XcmsCIELabToCIEXYZ
+//GO(XcmsCIELabWhiteShiftColors
+//GO(XcmsCIELuvClipL
+//GO(XcmsCIELuvClipLuv
+//GO(XcmsCIELuvClipuv
+DATA(XcmsCIELuvColorSpace, 6*sizeof(void*))
+// _XcmsCIELuv_prefix   // type r
+//GO(XcmsCIELuvQueryMaxC
+//GO(XcmsCIELuvQueryMaxL
+//GO(XcmsCIELuvQueryMaxLC
+// _XcmsCIELuvQueryMaxLCRGB
+//GO(XcmsCIELuvQueryMinL
+//GO(XcmsCIELuvToCIEuvY
+//GO(XcmsCIELuvWhiteShiftColors
+DATA(XcmsCIEuvYColorSpace, 6*sizeof(void*))
+// _XcmsCIEuvY_prefix   // type r
+//GO(XcmsCIEuvYToCIELuv
+//GO(XcmsCIEuvYToCIEXYZ
+//GO(XcmsCIEuvYToTekHVC
+// _XcmsCIEuvY_ValidSpec
+DATA(XcmsCIExyYColorSpace, 6*sizeof(void*)) // probably need some wrapping
+// _XcmsCIExyY_prefix   // type r
+//GO(XcmsCIExyYToCIEXYZ
+DATA(XcmsCIEXYZColorSpace, 6*sizeof(void*))
+// _XcmsCIEXYZ_prefix   // type r
+//GO(XcmsCIEXYZToCIELab
+//GO(XcmsCIEXYZToCIEuvY
+//GO(XcmsCIEXYZToCIExyY
+//GO(XcmsCIEXYZToRGBi
+// _XcmsCIEXYZ_ValidSpec
+//GO(XcmsClientWhitePointOfCCC
+//GO(XcmsConvertColors
+// _XcmsConvertColorsWithWhitePt
+// _XcmsCopyCmapRecAndFree
+// _XcmsCopyISOLatin1Lowered
+// _XcmsCopyPointerArray
+// _XcmsCosine
+//GO(XcmsCreateCCC
+// _XcmsCubeRoot
+DATA(_XcmsDDColorSpaces, 6*sizeof(void*))
+DATA(_XcmsDDColorSpacesInit, 6*sizeof(void*))
+// _XcmsDDConvertColors
+//GO(XcmsDefaultCCC
+// _XcmsDeleteCmapRec
+DATA(_XcmsDIColorSpaces, 6*sizeof(void*))
+DATA(_XcmsDIColorSpacesInit, 6*sizeof(void*))
+// _XcmsDIConvertColors
+//GO(XcmsDisplayOfCCC
+// _XcmsEqualWhitePts
+//GO(XcmsFormatOfPrefix
+//GO(XcmsFreeCCC
+// _XcmsFreeIntensityMaps
+// _XcmsFreePointerArray
+// _XcmsGetElement
+// _XcmsGetIntensityMap
+// _XcmsGetProperty
+// _XcmsInitDefaultCCCs
+// _XcmsInitScrnInfo
+DATA(XcmsLinearRGBFunctionSet, 3*sizeof(void*)) // probably needs some wrapping
+//GO(XcmsLookupColor
+// _XcmsLRGB_InitScrnDefault
+//GO(XcmsPrefixOfFormat
+// _XcmsPushPointerArray
+//GO(XcmsQueryBlack
+//GO(XcmsQueryBlue
+//GO(XcmsQueryColor
+//GO(XcmsQueryColors
+//GO(XcmsQueryGreen
+//GO(XcmsQueryRed
+//GO(XcmsQueryWhite
+DATA(_XcmsRegColorSpaces, 6*sizeof(void*))
+// _XcmsRegFormatOfPrefix
+// _XcmsResolveColor
+// _XcmsResolveColorString
+DATA(XcmsRGBColorSpace, 6*sizeof(void*))
+DATA(XcmsRGBiColorSpace, 6*sizeof(void*))
+// _XcmsRGBi_prefix // type r
+//GO(XcmsRGBiToCIEXYZ
+//GO(XcmsRGBiToRGB
+// _XcmsRGB_prefix  // type r
+//GO(XcmsRGBToRGBi
+// _XcmsRGB_to_XColor
+DATA(_XcmsSCCFuncSets, 3*sizeof(void*))
+DATA(_XcmsSCCFuncSetsInit, 3*sizeof(void*))
+//GO(XcmsScreenNumberOfCCC
+//GO(XcmsScreenWhitePointOfCCC
+//GO(XcmsSetCCCOfColormap
+//GO(XcmsSetCompressionProc
+// _XcmsSetGetColor
+// _XcmsSetGetColors
+//GO(XcmsSetWhiteAdjustProc
+//GO(XcmsSetWhitePoint
+// _XcmsSine
+// _XcmsSquareRoot
+//GO(XcmsStoreColor
+//GO(XcmsStoreColors
+// _XcmsTekHVC_CheckModify
+//GO(XcmsTekHVCClipC
+//GO(XcmsTekHVCClipV
+//GO(XcmsTekHVCClipVC
+DATA(XcmsTekHVCColorSpace, 6*sizeof(void*))
+// _XcmsTekHVC_prefix   // type r
+//GO(XcmsTekHVCQueryMaxC
+//GO(XcmsTekHVCQueryMaxV
+//GO(XcmsTekHVCQueryMaxVC
+// _XcmsTekHVCQueryMaxVCRGB
+//GO(XcmsTekHVCQueryMaxVSamples
+//GO(XcmsTekHVCQueryMinV
+//GO(XcmsTekHVCToCIEuvY
+//GO(XcmsTekHVCWhiteShiftColors
+DATA(XcmsUNDEFINEDColorSpace, 6*sizeof(void*))
+// _XcmsUnresolveColor
+//GO(XcmsVisualOfCCC
+// _XColor_to_XcmsRGB
+GO(XConfigureWindow, iFppup)
+GO(XConnectionNumber, iFp)
+// _XConnectXCB
+//GO(XContextDependentDrawing
+//GO(XContextualDrawing
+GO(XConvertCase, vFLpp)
+GO(XConvertSelection, iFpppppL)
+GO(XCopyArea, iFppppiiuuii)
+GO(XCopyColormapAndFree, uFpp)
+// _XCopyEventCookie
+GO(XCopyGC, iFpppL)
+GO(XCopyPlane, iFppppiiuuiiL)
+// _XCopyToArg
+GO(XCreateBitmapFromData, pFpppuu)
+GO(XCreateColormap, pFpppi)
+GO(XCreateFontCursor, pFpu)
+GO(XCreateFontSet, pFppppp)
+GO(XCreateGC, pFppup)
+//GO(XCreateGlyphCursor
+GO(XCreateIC, uFpppppppppppppppp)     // use ..., so putting an arbitrary number of args, also can have Callbacks ?! Allegro have 7 args and no callback
+GOM(XCreateImage, pFEppuiipuuii)
+GO(dummy_XCreateImage, pFppuiipuuii)    // to have the wrapper
+DATAB(_XCreateMutex_fn, sizeof(void*))
+//GO(XCreateOC
+GO(XCreatePixmap, pFppuuu)
+GO(XCreatePixmapCursor, pFpppppuu)
+GO(XCreatePixmapFromBitmapData, pFpppuuLLu)
+GO(XCreateRegion, pFv)
+GO(XCreateSimpleWindow, pFppiiuuuLL)
+GO(XCreateWindow, pFppiiuuuiupLp)
+DATAB(_Xdebug, sizeof(void*))
+GO(XDefaultColormap, pFpi)
+//GO(XDefaultColormapOfScreen
+GO(XDefaultDepth, iFpi)
+//GO(XDefaultDepthOfScreen
+// _XDefaultError
+GO(XDefaultGC, pFpi)
+//GO(XDefaultGCOfScreen
+GO(_XDefaultIOError, iFp)
+// _XDefaultOpenIM
+// _XDefaultOpenOM
+GO(XDefaultRootWindow, pFp)
+GO(XDefaultScreen, pFp)
+GO(XDefaultScreenOfDisplay, pFp)
+//GO(XDefaultString
+GO(XDefaultVisual, pFpi)
+//GO(XDefaultVisualOfScreen
+// _XDefaultWireError
+GO(XDefineCursor, iFppp)
+GO(XDeleteContext, iFppp)
+//GO(XDeleteModifiermapEntry
+GO(XDeleteProperty, iFppp)
+// _XDeq
+GO(_XDeqAsyncHandler, vFEpp)
+GO(XDestroyIC, vFp)
+GOM(XDestroyImage, iFEp)  //need to unbridge
+//GO(XDestroyOC
+GO(XDestroyRegion, iFp)
+GO(XDestroySubwindows, iFpp)
+GO(XDestroyWindow, iFpp)
+//GO(XDirectionalDependentDrawing
+//GO(XDisableAccessControl
+//GO(XDisplayCells
+GO(XDisplayHeight, iFpi)
+GO(XDisplayHeightMM, iFpi)
+GO(XDisplayKeycodes, iFppp)
+//GO(XDisplayMotionBufferSize
+GO(XDisplayName, pFp)
+GO(XDisplayOfIM, pFp)
+//GO(XDisplayOfOM
+//GO(XDisplayOfScreen
+//GO(XDisplayPlanes
+GO(XDisplayString, pFp)
+GO(XDisplayWidth, iFpi)
+GO(XDisplayWidthMM, iFpi)
+//GO(XDoesBackingStore
+//GO(XDoesSaveUnders
+GO(XDrawArc, iFpppiiuuii)
+//GO(XDrawArcs
+//GO(XDrawImageString
+//GO(XDrawImageString16
+GO(XDrawLine, iFpppiiii)
+GO(XDrawLines, iFppppii)
+GO(XDrawPoint, iFpppii)
+GO(XDrawPoints, iFppppii)
+GO(XDrawRectangle, iFpppiiuu)
+GO(XDrawRectangles, iFppppi)
+GO(XDrawSegments, iFppppi)
+GO(XDrawString, iFpppiipi)
+GO(XDrawString16, iFpppiipi)
+//GO(XDrawText
+//GO(XDrawText16
+GO(_XEatData, vFpL)
+GO(_XEatDataWords, vFpL)
+//GO(XEHeadOfExtensionList
+GO(XEmptyRegion, iFp)
+//GO(XEnableAccessControl
+// _XEnq
+GO(XEqualRegion, iFpp)
+// _XError
+DATAB(_XErrorFunction, sizeof(void*))
+//GO(XESetBeforeFlush
+GOM(XESetCloseDisplay, pFEpip)
+//GO(XESetCopyEventCookie
+//GO(XESetCopyGC
+//GO(XESetCreateFont
+//GO(XESetCreateGC
+GOM(XESetError, pFEpip)
+//GO(XESetErrorString
+GOM(XESetEventToWire, pFEpip)
+//GO(XESetFlushGC
+//GO(XESetFreeFont
+//GO(XESetFreeGC
+//GO(XESetPrintErrorValues
+//GO(XESetWireToError
+GOM(XESetWireToEvent, pFEpip)
+//GO(XESetWireToEventCookie
+//GO(XEventMaskOfScreen
+GO(XEventsQueued, iFpi)
+// _XEventsQueued
+// _Xevent_to_mask  // type r
+// _XEventToWire
+GO(XExtendedMaxRequestSize, lFp)
+//GO(XExtentsOfFontSet
+// _XF86BigfontFreeFontMetrics
+// _XF86LoadQueryLocaleFont
+//GO(XFetchBuffer
+//GO(XFetchBytes
+// _XFetchEventCookie
+//GO(XFetchName
+GO(XFillArc, iFpppiiuuii)
+//GO(XFillArcs
+GO(XFillPolygon, iFppppiii)
+GO(XFillRectangle, iFpppiiuu)
+GO(XFillRectangles, iFppppi)
+GO(XFilterEvent, iFpp)
+GO(XFindContext, iFpppp)
+//GO(XFindOnExtensionList
+GO(XFlush, iFp)
+GO(_XFlush, vFp)
+GO(XFlushGC, vFpp)
+GO(_XFlushGCCache, vFpp)
+GO(XFontsOfFontSet, iFppp)
+GO(XForceScreenSaver, iFpi)
+GO(XFree, iFp)
+// _XFreeAtomTable
+GO(XFreeColormap, iFpp)
+GO(XFreeColors, iFpppiL)
+GO(XFreeCursor, iFpp)
+DATAB(_XFreeDisplayLock_fn, sizeof(void*))
+// _XFreeDisplayStructure
+// _XFreeEventCookies
+GO(XFreeEventData, vFpp)
+// _XFreeExtData
+GO(XFreeExtensionList, iFp)
+GO(XFreeFont, iFpp)
+GO(XFreeFontInfo, iFppi)
+GO(XFreeFontNames, iFp)
+GO(XFreeFontPath, iFp)
+GO(XFreeFontSet, vFpp)
+GO(XFreeGC, iFpp)
+GO(XFreeModifiermap, iFp)
+DATAB(_XFreeMutex_fn, sizeof(void*))
+GO(XFreePixmap, iFpp)
+GO(XFreeStringList, vFp)
+// _XFreeTemp
+// _XFreeX11XCBStructure
+GO(XGContextFromGC, pFp)
+GO(XGeometry, iFpippuuuiipppp)
+GO(_XGetAsyncData, vFpppiiii)
+// _XGetAsyncReply
+GO(XGetAtomName, pFpp)
+GO(XGetAtomNames, iFppip)
+// _XGetBitsPerPixel
+GO(XGetClassHint, iFppp)
+GO(XGetCommand, iFpppp)
+GO(XGetDefault, pFppp)
+GO(XGetErrorDatabaseText, iFpppppi)
+GO(XGetErrorText, iFpipi)
+GO(XGetEventData, iFpp)
+GO(XGetFontPath, pFpp)
+GO(XGetFontProperty, iFppp)
+GO(XGetGCValues, iFppLp)
+GO(XGetGeometry, iFppppppppp)
+// _XGetHostname
+GO(XGetIconName, iFppp)
+//GO(XGetIconSizes
+GO(XGetICValues, pFpppppppppp)      // use varargs...
+GOM(XGetImage, pFEppiiuuLi)     // return an XImage with callbacks that needs wrapping
+GO(XGetIMValues, pFppppppp)     // use varargs
+GO(XGetInputFocus, iFppp)
+GO(XGetKeyboardControl, iFpp)
+GO(XGetKeyboardMapping, pFppip)
+// _XGetLCValues
+GO(XGetModifierMapping, pFp)
+GO(XGetMotionEvents, pFppLLp)
+//GO(XGetNormalHints
+//GO(XGetOCValues
+//GO(XGetOMValues
+//GOM(XGetPixel, LFEpii)  // need unbridging
+GO(dummy_XGetPixel, LFpii)     // for the wrapper
+GO(XGetPointerControl, iFpppp)
+GO(XGetPointerMapping, iFppi)
+GO(_XGetRequest, pFpuL)
+GO(XGetRGBColormaps, iFppppp)
+// _XGetScanlinePad
+GO(XGetScreenSaver, iFppppp)
+GO(XGetSelectionOwner, pFpp)
+//GO(XGetSizeHints
+//GO(XGetStandardColormap
+GOM(XGetSubImage, pFEppiiuuuipii)
+//GO(XGetTextProperty
+GO(XGetTransientForHint, iFppp)
+GO(XGetVisualInfo, pFplpp)
+GO(XGetWindowAttributes, iFppp)
+// _XGetWindowAttributes
+GO(XGetWindowProperty, iFpppllipppppp)
+//GO(XGetWMClientMachine
+GO(XGetWMColormapWindows, iFpppp)
+GO(XGetWMHints, pFpp)
+GO(XGetWMIconName, iFppp)
+GO(XGetWMName, iFppp)
+GO(XGetWMNormalHints, iFpppp)
+//GO(XGetWMProtocols
+GO(XGetWMSizeHints, iFppppp)
+//GO(XGetZoomHints
+DATAB(_Xglobal_lock, sizeof(void*))
+GO(XGrabButton, iFpuupiuiipp)
+GO(XGrabKey, iFpiupiii)
+GO(XGrabKeyboard, iFppuiiL)
+GO(XGrabPointer, iFppiuiippL)
+GO(XGrabServer, iFp)
+DATAB(_XHeadOfDisplayList, sizeof(void*))
+GO(XHeightMMOfScreen, iFp)
+GO(XHeightOfScreen, iFp)
+DATAB(_Xi18n_lock, sizeof(void*))
+GO(XIconifyWindow, iFppi)
+GOM(XIfEvent, iFEpppp)
+GO(XImageByteOrder, iFp)
+// _XIMCompileResourceList
+// _XimGetCharCode
+// _XimGetLocaleCode
+// _XimLookupMBText
+// _XimLookupUTF8Text
+// _XimLookupWCText
+GO(XIMOfIC, pFp)
+// _XimXTransBytesReadable
+// _XimXTransClose
+// _XimXTransCloseForCloning
+// _XimXTransConnect
+// _XimXTransDisconnect
+// _XimXTransFreeConnInfo
+// _XimXTransGetConnectionNumber
+// _XimXTransGetHostname
+// _XimXTransGetMyAddr
+// _XimXTransGetPeerAddr
+// _XimXTransIsLocal
+// _XimXTransOpenCLTSClient
+// _XimXTransOpenCOTSClient
+// _XimXTransRead
+// _XimXTransReadv
+// _XimXTransSetOption
+DATA(_XimXTransSocketINET6Funcs, sizeof(void*))
+DATA(_XimXTransSocketINETFuncs, sizeof(void*))
+DATA(_XimXTransSocketLocalFuncs, sizeof(void*))
+DATA(_XimXTransSocketTCPFuncs, sizeof(void*))
+DATA(_XimXTransSocketUNIXFuncs, sizeof(void*))
+// _XimXTransWrite
+// _XimXTransWritev
+// _XInitDefaultIM
+// _XInitDefaultOM
+DATAB(_XInitDisplayLock_fn, sizeof(void*))
+// _XInitDynamicIM
+// _XInitDynamicOM
+GO(XInitExtension, pFpp)
+GOM(XInitImage, iFEp)
+// _XInitImageFuncPtrs
+// _XInitKeysymDB
+GO(XInitThreads, iFv)
+//GO(XInsertModifiermapEntry
+GO(XInstallColormap, iFpp)
+GO(XInternalConnectionNumbers, iFppp)
+GO(XInternAtom, pFppi)
+GO(XInternAtoms, iFppiip)
+GO(XIntersectRegion, iFppp)
+GO(_XIOError, iFp)
+DATAB(_XIOErrorFunction, sizeof(void*))
+// _XIsEventCookie
+//GO(XkbAddDeviceLedInfo
+//GO(XkbAddGeomColor
+//GO(XkbAddGeomDoodad
+//GO(XkbAddGeomKey
+//GO(XkbAddGeomKeyAlias
+//GO(XkbAddGeomOutline
+//GO(XkbAddGeomOverlay
+//GO(XkbAddGeomOverlayKey
+//GO(XkbAddGeomOverlayRow
+//GO(XkbAddGeomProperty
+//GO(XkbAddGeomRow
+//GO(XkbAddGeomSection
+//GO(XkbAddGeomShape
+//GO(XkbAddKeyType
+//GO(XkbAllocClientMap
+//GO(XkbAllocCompatMap
+//GO(XkbAllocControls
+//GO(XkbAllocDeviceInfo
+//GO(XkbAllocGeomColors
+//GO(XkbAllocGeomDoodads
+//GO(XkbAllocGeometry
+//GO(XkbAllocGeomKeyAliases
+//GO(XkbAllocGeomKeys
+//GO(XkbAllocGeomOutlines
+//GO(XkbAllocGeomOverlayKeys
+//GO(XkbAllocGeomOverlayRows
+//GO(XkbAllocGeomOverlays
+//GO(XkbAllocGeomPoints
+//GO(XkbAllocGeomProps
+//GO(XkbAllocGeomRows
+//GO(XkbAllocGeomSectionDoodads
+//GO(XkbAllocGeomSections
+//GO(XkbAllocGeomShapes
+//GO(XkbAllocIndicatorMaps
+//GO(XkbAllocKeyboard
+//GO(XkbAllocNames
+//GO(XkbAllocServerMap
+//GO(XkbApplyCompatMapToKey
+//GO(XkbApplyVirtualModChanges
+//GO(XkbBell
+//GO(XkbBellEvent
+//GO(XkbChangeDeviceInfo
+//GO(XkbChangeEnabledControls
+//GO(XkbChangeKeycodeRange
+//GO(XkbChangeMap
+//GO(XkbChangeNames
+//GO(XkbChangeTypesOfKey
+//GO(XkbComputeEffectiveMap
+//GO(XkbComputeRowBounds
+//GO(XkbComputeSectionBounds
+//GO(XkbComputeShapeBounds
+//GO(XkbComputeShapeTop
+// _XkbCopyFromReadBuffer
+//GO(XkbCopyKeyType
+//GO(XkbCopyKeyTypes
+//GO(XkbDeviceBell
+//GO(XkbDeviceBellEvent
+//GO(XkbFindOverlayForKey
+//GO(XkbForceBell
+//GO(XkbForceDeviceBell
+GO(XkbFreeClientMap, vFpui)
+//GO(XkbFreeCompatMap
+//GO(XkbFreeComponentList
+//GO(XkbFreeControls
+//GO(XkbFreeDeviceInfo
+//GO(XkbFreeGeomColors
+//GO(XkbFreeGeomDoodads
+//GO(XkbFreeGeometry
+//GO(XkbFreeGeomKeyAliases
+//GO(XkbFreeGeomKeys
+//GO(XkbFreeGeomOutlines
+//GO(XkbFreeGeomOverlayKeys
+//GO(XkbFreeGeomOverlayRows
+//GO(XkbFreeGeomOverlays
+//GO(XkbFreeGeomPoints
+//GO(XkbFreeGeomProperties
+//GO(XkbFreeGeomRows
+//GO(XkbFreeGeomSections
+//GO(XkbFreeGeomShapes
+//GO(XkbFreeIndicatorMaps
+GO(XkbFreeKeyboard, vFpui)
+GO(XkbFreeNames, vFpui)
+// _XkbFreeReadBuffer
+//GO(XkbFreeServerMap
+DATA(_XkbGetAtomNameFunc, sizeof(void*))
+//GO(XkbGetAutoRepeatRate
+//GO(XkbGetAutoResetControls
+// _XkbGetCharset
+//GO(XkbGetCompatMap
+//GO(XkbGetControls
+// _XkbGetConverters
+//GO(XkbGetDetectableAutoRepeat
+//GO(XkbGetDeviceButtonActions
+//GO(XkbGetDeviceInfo
+//GO(XkbGetDeviceInfoChanges
+//GO(XkbGetDeviceLedInfo
+//GO(XkbGetGeometry
+//GO(XkbGetIndicatorMap
+//GO(XkbGetIndicatorState
+//GO(XkbGetKeyActions
+//GO(XkbGetKeyBehaviors
+GO(XkbGetKeyboard, pFpuu)
+//GO(XkbGetKeyboardByName
+//GO(XkbGetKeyExplicitComponents
+//GO(XkbGetKeyModifierMap
+//GO(XkbGetKeySyms
+//GO(XkbGetKeyTypes
+//GO(XkbGetKeyVirtualModMap
+GO(XkbGetMap, pFpuu)
+//GO(XkbGetMapChanges
+//GO(XkbGetNamedDeviceIndicator
+//GO(XkbGetNamedGeometry
+GO(XkbGetNamedIndicator, iFpuppppp)
+GO(XkbGetNames, iFpup)
+//GO(XkbGetPerClientControls
+// _XkbGetReadBufferCountedString
+// _XkbGetReadBufferPtr
+GO(XkbGetState, iFpup)
+GO(XkbGetUpdatedMap, iFpup)
+//GO(XkbGetVirtualMods
+//GO(XkbGetXlibControls
+GO(XkbIgnoreExtension, iFp)
+//GO(XkbInitCanonicalKeyTypes
+// _XkbInitReadBuffer
+DATA(_XkbInternAtomFunc, sizeof(void*))
+GO(XkbKeycodeToKeysym, LFpuuu)
+//GO(XkbKeysymToModifiers
+//GO(XkbKeyTypesForCoreSymbols
+//GO(XkbLatchGroup
+//GO(XkbLatchModifiers
+GO(XkbLibraryVersion, iFpp)
+//GO(XkbListComponents
+//GO(XkbLockGroup
+//GO(XkbLockModifiers
+//GO(XkbLookupKeyBinding
+GO(XkbLookupKeySym, iFpuupp)
+//GO(XkbNoteControlsChanges
+// _XkbNoteCoreMapChanges
+//GO(XkbNoteDeviceChanges
+//GO(XkbNoteMapChanges
+//GO(XkbNoteNameChanges
+//GO(XkbOpenDisplay
+// _XkbPeekAtReadBuffer
+GO(XkbQueryExtension, iFpppppp)
+// _XkbReadBufferCopyKeySyms
+// _XkbReadCopyKeySyms
+// _XkbReadGetCompatMapReply
+// _XkbReadGetGeometryReply
+// _XkbReadGetIndicatorMapReply
+// _XkbReadGetMapReply
+// _XkbReadGetNamesReply
+//GO(XkbRefreshKeyboardMapping
+// _XkbReloadDpy
+//GO(XkbResizeDeviceButtonActions
+//GO(XkbResizeKeyActions
+//GO(XkbResizeKeySyms
+//GO(XkbResizeKeyType
+GO(XkbSelectEventDetails, iFpuuLL)
+GO(XkbSelectEvents, iFpuLL)
+//GO(XkbSetAtomFuncs
+//GO(XkbSetAutoRepeatRate
+//GO(XkbSetAutoResetControls
+//GO(XkbSetCompatMap
+//GO(XkbSetControlslib
+//GO(XkbSetDebuggingFlags
+GO(XkbSetDetectableAutoRepeat, iFpip)
+//GO(XkbSetDeviceButtonActions
+//GO(XkbSetDeviceInfo
+//GO(XkbSetDeviceLedInfo
+//GO(XkbSetGeometry
+//GO(XkbSetIgnoreLockMods
+//GO(XkbSetIndicatorMap
+//GO(XkbSetMap
+//GO(XkbSetNamedDeviceIndicator
+//GO(XkbSetNamedIndicator
+//GO(XkbSetNames
+GO(XkbSetPerClientControls, iFpup)
+//GO(XkbSetServerInternalMods
+//GO(XkbSetXlibControls
+// _XkbSkipReadBufferData
+//GO(XkbToControl
+//GO(XkbTranslateKey
+//GO(XkbTranslateKeyCode
+GO(XkbTranslateKeySym, iFppupip)
+//GO(XkbUpdateActionVirtualMods
+//GO(XkbUpdateKeyTypeVirtualMods
+//GO(XkbUpdateMapFromCore
+GO(XkbUseExtension, iFppp)
+//GO(XkbVirtualModsToReal
+// _XkbWriteCopyKeySyms
+//GO(XkbXlibControlsImplemented
+GO(XKeycodeToKeysym, pFppi)
+// _XKeycodeToKeysym
+// _XKeyInitialize
+GO(XKeysymToKeycode, uFpp)
+// _XKeysymToKeycode
+// _XKeysymToModifiers
+GO(XKeysymToString, pFp)
+// _XkeyTable   // type r
+//GO(XKillClient
+//GO(XLastKnownRequestProcessed
+// _XlcAddCharSet
+// _XlcAddCT
+// _XlcAddGB18030LocaleConverters
+// _XlcAddLoader
+// _XlcAddUtf8Converters
+// _XlcAddUtf8LocaleConverters
+// _XlcCloseConverter
+// _XlcCompareISOLatin1
+// _XlcCompileResourceList
+// _XlcConvert
+// _XlcCopyFromArg
+// _XlcCopyToArg
+// _XlcCountVaList
+// _XlcCreateDefaultCharSet
+// _XlcCreateLC
+// _XlcCreateLocaleDataBase
+// _XlcCurrentLC
+// _XlcDbg_printValue
+// _XlcDefaultMapModifiers
+// _XlcDeInitLoader
+// _XlcDestroyLC
+// _XlcDestroyLocaleDataBase
+// _XlcDynamicLoad
+// _XlcFileName
+DATA(_XlcGenericMethods, sizeof(void*))
+// _XlcGetCharSet
+// _XlcGetCharSetWithSide
+// _XlcGetCSValues
+// _XlcGetLocaleDataBase
+// _XlcGetResource
+// _XlcGetValues
+// _XlcInitCTInfo
+// _XlcInitLoader
+// _XlcLocaleDirName
+// _XlcLocaleLibDirName
+// _XlcMapOSLocaleName
+// _Xlcmbstoutf8
+// _Xlcmbstowcs
+// _Xlcmbtowc
+// _XlcNCompareISOLatin1
+// _XlcOpenConverter
+// _XlcParseCharSet
+// _XlcParse_scopemaps
+DATA(_XlcPublicMethods, sizeof(void*))
+// _XlcRemoveLoader
+// _XlcResetConverter
+// _XlcResolveI18NPath
+// _XlcResolveLocaleName
+// _XlcSetConverter
+// _XlcSetValues
+// _XlcValidModSyntax
+// _XlcVaToArgList
+// _Xlcwcstombs
+// _Xlcwctomb
+GO(XListDepths, pFpip)
+GO(XListExtensions, pFpp)
+GO(XListFonts, pFppip)
+GO(XListFontsWithInfo, pFppipp)
+//GO(XListHosts
+//GO(XListInstalledColormaps
+GO(XListPixmapFormats, pFpp)
+GO(XListProperties, pFppp)
+GO(XLoadFont, pFpp)
+GO(XLoadQueryFont, pFpp)
+// xlocaledir
+//GO(XLocaleOfFontSet
+GO(XLocaleOfIM, pFp)
+//GO(XLocaleOfOM
+GO(XLockDisplay, vFp)
+DATAB(_XLockMutex_fn, sizeof(void*))
+GO(XLookupColor, iFppppp)
+GO(XLookupKeysym, pFpi)
+// _XLookupKeysym
+GO(XLookupString, iFppipp)
+// _XLookupString
+GO(XLowerWindow, iFpp)
+GO(XMapRaised, iFpp)
+GO(XMapSubwindows, iFpp)
+GO(XMapWindow, iFpp)
+GO(XMaskEvent, iFplp)
+GO(XMatchVisualInfo, iFpiiip)
+//GO(XMaxCmapsOfScreen
+GO(XMaxRequestSize, iFp)
+//GO(XmbDrawImageString
+GO(XmbDrawString, vFppppiipi)
+//GO(XmbDrawText
+// _Xmblen
+GO(XmbLookupString, iFpppipp)
+GO(XmbResetIC, pFp)
+GO(XmbSetWMProperties, vFpppppippp)
+// _Xmbstoutf8
+// _Xmbstowcs
+GO(XmbTextEscapement, iFppi)
+GO(XmbTextExtents, iFppipp)
+GO(XmbTextListToTextProperty, iFppiip)
+// _XmbTextListToTextProperty
+//GO(XmbTextPerCharExtents
+GO(XmbTextPropertyToTextList, iFpppp)
+// _XmbTextPropertyToTextList
+// _Xmbtowc
+//GO(XMinCmapsOfScreen
+GO(XMoveResizeWindow, iFppiiuu)
+GO(XMoveWindow, iFppii)
+//GO(XNewModifiermap
+GO(XNextEvent, iFpp)
+GO(XNextRequest, LFp)
+GO(XNoOp, iFp)
+// _XNoticeCreateBitmap
+// _XNoticePutBitmap
+GO(XOffsetRegion, iFpii)
+//GO(XOMOfOC
+GOM(XOpenDisplay, pFEp)
+GO(XOpenIM, uFpppp)
+// _XOpenLC
+//GO(XOpenOM
+// _XParseBaseFontNameList
+GO(XParseColor, iFpppp)
+GO(XParseGeometry, iFppppp)
+GO(XPeekEvent, iFpp)
+GOM(XPeekIfEvent, iFEpppp)
+GO(XPending, iFp)
+//GO(Xpermalloc
+//GO(XPlanesOfScreen
+GO(XPointInRegion, iFpp)
+// _XPollfdCacheAdd
+// _XPollfdCacheDel
+// _XPollfdCacheInit
+GO(XPolygonRegion, pFpii)
+GO(XProcessInternalConnection, vFpi)
+// _XProcessInternalConnection
+// _XProcessWindowAttributes
+//GO(XProtocolRevision
+//GO(XProtocolVersion
+GO(XPutBackEvent, iFpp)
+// _XPutBackEvent
+GOM(XPutImage, iFEppppiiiiuu)
+//GO(XPutPixel
+GO(XQLength, iFp)
+GO(XQueryBestCursor, iFppuupp)
+//GO(XQueryBestSize
+//GO(XQueryBestStipple
+//GO(XQueryBestTile
+GO(XQueryColor, iFppp)
+GO(XQueryColors, iFpppi)
+GOM(XQueryExtension, iFEppppp)
+GO(XQueryFont, pFpp)
+GO(XQueryKeymap, iFpp)
+GO(XQueryPointer, iFppppppppp)
+GO(XQueryTextExtents, iFpppipppp)
+GO(XQueryTextExtents16, iFpppipppp)
+GO(XQueryTree, pFpppppp)
+GO(XRaiseWindow, iFpp)
+GO(_XRead, iFppi)
+//GO(XReadBitmapFile
+//GO(XReadBitmapFileData
+// _XReadEvents
+GO(_XReadPad, vFppi)
+GO(XRebindKeysym, iFpppipi)
+GO(XRecolorCursor, iFpppp)
+GO(XReconfigureWMWindow, iFppiup)
+GO(XRectInRegion, iFpiiuu)
+GO(XRefreshKeyboardMapping, iFp)
+// _XRefreshKeyboardMapping
+// _XRegisterFilterByMask
+// _XRegisterFilterByType
+GOM(XRegisterIMInstantiateCallback, iFEpppppp)
+// _XRegisterInternalConnection
+GOM(XRemoveConnectionWatch, iFEppp)
+//GO(XRemoveFromSaveSet
+//GO(XRemoveHost
+//GO(XRemoveHosts
+GO(XReparentWindow, iFpppii)
+GO(_XReply, iFppii)
+GO(XResetScreenSaver, iFp)
+GO(XResizeWindow, iFppuu)
+GO(XResourceManagerString, pFp)
+GO(XRestackWindows, iFppi)
+// _XReverse_Bytes
+GO(XrmCombineDatabase, vFppi)
+GO(XrmCombineFileDatabase, iFppi)
+// _XrmDefaultInitParseInfo
+GO(XrmDestroyDatabase, vFp)
+//GOM(XrmEnumerateDatabase
+GO(XrmGetDatabase, pFp)
+GO(XrmGetFileDatabase, pFp)
+GO(XrmGetResource, iFppppp)
+GO(XrmGetStringDatabase, pFp)
+GO(XrmInitialize, vFv)
+// _XrmInitParseInfo
+// _XrmInternalStringToQuark
+//GO(XrmLocaleOfDatabase
+//GO(XrmMergeDatabases
+//GO(XrmParseCommand
+//GO(XrmPermStringToQuark
+//GO(XrmPutFileDatabase
+//GO(XrmPutLineResource
+//GO(XrmPutResource
+//GO(XrmPutStringResource
+//GO(XrmQGetResource
+//GO(XrmQGetSearchList
+//GO(XrmQGetSearchResource
+//GO(XrmQPutResource
+//GO(XrmQPutStringResource
+//GO(XrmQuarkToString
+//GO(XrmSetDatabase
+//GO(XrmStringToBindingQuarkList
+//GO(XrmStringToQuark
+//GO(XrmStringToQuarkList
+GO(XrmUniqueQuark, iFv) //typedef int XrmQuark, *XrmQuarkList;
+GO(XRootWindow, pFpi)
+//GO(XRootWindowOfScreen
+GO(XRotateBuffers, iFpi)
+GO(XRotateWindowProperties, iFpppii)
+GO(XSaveContext, iFpuip)
+GO(XScreenCount, iFp)
+GO(XScreenNumberOfScreen, iFp)
+GO(XScreenOfDisplay, pFpi)
+// _XScreenOfWindow
+//GO(XScreenResourceString
+GO(XSelectInput, iFppi)
+GO(_XSend, vFppi)
+GO(XSendEvent, uFppiip)
+GO(XServerVendor, pFp)
+GO(XSetAccessControl, iFpi)
+//GO(XSetAfterFunction
+GO(XSetArcMode, iFppi)
+//GO(XSetAuthorization
+GO(XSetBackground, iFppL)
+GO(XSetClassHint, iFppp)
+GO(XSetClipMask, iFppp)
+GO(XSetClipOrigin, iFppii)
+GO(XSetClipRectangles, iFppiipii)
+// _XSetClipRectangles
+GO(XSetCloseDownMode, iFpi)
+GO(XSetCommand, iFpppi)
+GO(XSetDashes, iFppipi)
+GOM(XSetErrorHandler, pFEp)
+GO(XSetFillRule, iFppi)
+GO(XSetFillStyle, iFppp)
+GO(XSetFont, iFppp)
+GO(XSetFontPath, iFppi)
+GO(XSetForeground, iFppL)
+GO(XSetFunction, iFppi)
+GO(XSetGraphicsExposures, iFppi)
+GO(XSetICFocus, vFp)
+GO(XSetIconName, iFppp)
+//GO(XSetIconSizes
+GO(XSetICValues, pFpppppp)          // use vaarg
+// _XSetImage
+GO(XSetIMValues, pFppppppppppppp)	// use vaarg
+GO(XSetInputFocus, iFppiL)
+GOM(XSetIOErrorHandler, pFEp)
+GO(_XSetLastRequestRead, uFpp)
+GO(XSetLineAttributes, iFppuiii)
+GO(XSetLocaleModifiers, pFp)
+//GO(XSetModifierMapping
+GO(XSetNormalHints, iFpppp)
+//GO(XSetOCValues
+//GO(XSetOMValues
+//GO(XSetPlaneMask
+//GO(XSetPointerMapping
+GO(XSetRegion, iFppp)
+//GO(XSetRGBColormaps
+GO(XSetScreenSaver, iFpiiii)
+GO(XSetSelectionOwner, iFpppL)
+//GO(XSetSizeHints
+//GO(XSetStandardColormap
+GO(XSetStandardProperties, iFpppppppp)
+//GO(XSetState
+GO(XSetStipple, iFppp)
+GO(XSetSubwindowMode, iFppi)
+GO(XSetTextProperty, vFpppp)
+GO(XSetTile, iFppp)
+GO(XSetTransientForHint, iFppp)
+GO(XSetTSOrigin, iFppii)
+GO(XSetWindowBackground, iFppu)
+GO(XSetWindowBackgroundPixmap, iFppp)
+//GO(XSetWindowBorder
+//GO(XSetWindowBorderPixmap
+GO(XSetWindowBorderWidth, iFppu)
+GO(XSetWindowColormap, iFppp)
+//GO(XSetWMClientMachine
+GO(XSetWMColormapWindows, iFpppi)
+GO(XSetWMHints, iFppp)
+GO(XSetWMIconName, vFppp)
+GO(XSetWMName, vFppp)
+GO(XSetWMNormalHints, iFppp)
+GO(XSetWMProperties, vFpppppippp)
+GO(XSetWMProtocols, iFpppi)
+GO(XSetWMSizeHints, vFpppu)
+//GO(XSetZoomHints
+GO(XShrinkRegion, iFpii)
+//GO(XStoreBuffer
+//GO(XStoreBytes
+GO(XStoreColor, iFppp)
+GO(XStoreColors, iFpppi)
+// _XStoreEventCookie
+GO(XStoreName, iFppp)
+//GO(XStoreNamedColor
+GO(XStringListToTextProperty, iFpip)
+GO(XStringToKeysym, pFp)
+//GOM(XSubImage, pFEpiiuu)    // need unbridging
+GO(dummy_XSubImage, pFpiiuu)    // for the wrapper
+GO(XSubtractRegion, iFppp)
+GO(XSupportsLocale, iFv)
+GO(XSync, iFpu)
+//GOM(XSynchronize, pFEpi)  // Needs wrapping, return a function
+GO(XTextExtents, iFppipppp)
+GO(XTextExtents16, iFppipppp)
+// _XTextHeight
+// _XTextHeight16
+//GO(XTextPropertyToStringList
+GO(XTextWidth, iFppi)
+GO(XTextWidth16, iFppi)
+DATAB(_Xthread_self_fn, sizeof(void*))
+GO(XTranslateCoordinates, iFpppiippp)
+// _XTranslateKey
+// _XTranslateKeySym
+// _XTryShapeBitmapCursor
+GO(XUndefineCursor, iFpp)
+//GO(XUngrabButton
+GO(XUngrabKey, iFpiup)
+GO(XUngrabKeyboard, iFpL)
+GO(XUngrabPointer, iFpL)
+GO(XUngrabServer, iFp)
+GO(XUninstallColormap, iFpp)
+GO(XUnionRectWithRegion, iFppp)
+GO(XUnionRegion, iFppp)
+// _XUnknownCopyEventCookie
+// _XUnknownNativeEvent
+// _XUnknownWireEvent
+// _XUnknownWireEventCookie
+GO(XUnloadFont, iFpp)
+GO(XUnlockDisplay, vFp)
+DATAB(_XUnlockMutex_fn, sizeof(void*))
+GO(XUnmapSubwindows, iFpp)
+GO(XUnmapWindow, iFpp)
+// _XUnregisterFilter
+GOM(XUnregisterIMInstantiateCallback, iFEpppppp)
+// _XUnregisterInternalConnection
+// _XUnresolveColor
+GO(XUnsetICFocus, vFp)
+// _XUpdateAtomCache
+// _XUpdateGCCache
+//GO(Xutf8DrawImageString
+GO(Xutf8DrawString, vFppppiipi)
+//GO(Xutf8DrawText
+GO(Xutf8LookupString, iFuppipp)
+GO(Xutf8ResetIC, pFu)
+GO(Xutf8SetWMProperties, vFpppppippp)
+//GO(Xutf8TextEscapement
+GO(Xutf8TextExtents, iFppipp)
+GO(Xutf8TextListToTextProperty, iFppiup)
+// _Xutf8TextListToTextProperty
+//GO(Xutf8TextPerCharExtents
+GO(Xutf8TextPropertyToTextList, iFpppp)
+// _Xutf8TextPropertyToTextList
+GO(XVaCreateNestedList, pFipppppppppppppppppppppp)  // should recreate the function instead...
+GO(XVendorRelease, iFp)
+// _XVIDtoVisual
+GO(XVisualIDFromVisual, LFp)
+GO(XWarpPointer, iFpppiiuuii)
+//GO(XwcDrawImageString
+GO(XwcDrawString, vFppppiipi)
+//GO(XwcDrawText
+GO(XwcFreeStringList, vFp)
+// _XwcFreeStringList
+GO(XwcLookupString, iFpppipp)
+//GO(XwcResetIC
+// _Xwcscmp
+// _Xwcscpy
+// _Xwcslen
+// _Xwcsncmp
+// _Xwcsncpy
+// _Xwcstombs
+GO(XwcTextEscapement, iFppi)
+GO(XwcTextExtents, iFppipp)
+GO(XwcTextListToTextProperty, iFppiip)
+// _XwcTextListToTextProperty
+//GO(XwcTextPerCharExtents
+GO(XwcTextPropertyToTextList, iFpppp)
+// _XwcTextPropertyToTextList
+// _Xwctomb
+//GO(XWhitePixel
+//GO(XWhitePixelOfScreen
+//GO(XWidthMMOfScreen
+GO(XWidthOfScreen, iFp)
+GO(XWindowEvent, iFpplp)
+GO(_XWireToEvent, iFppp)
+GO(XWithdrawWindow, iFppi)
+//GO(XWMGeometry
+//GO(XWriteBitmapFile
+GO(XXorRegion, iFppp)
+
+GO(dummy_putpixel, iFpiiL)
+GO(dummy_addpixel, iFpl)
\ No newline at end of file