about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-06 12:14:53 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-06 12:14:53 +0200
commitb395cd7ccc0a3b98b82306a35a2d96a9d42c5d7d (patch)
tree366ae945bce1592b0a2e47d995da27e95ef1eca0 /src
parent8ec6b15dc21b11175cf619790c9492f344f5ab64 (diff)
downloadbox64-b395cd7ccc0a3b98b82306a35a2d96a9d42c5d7d.tar.gz
box64-b395cd7ccc0a3b98b82306a35a2d96a9d42c5d7d.zip
[BOX32] More work on various wrapper, and some bug fixes
Diffstat (limited to 'src')
-rw-r--r--src/include/signals.h4
-rw-r--r--src/libtools/my_x11_defs.h26
-rw-r--r--src/libtools/my_x11_defs_32.h26
-rw-r--r--src/wrapped32/generated/converter32.c50
-rw-r--r--src/wrapped32/generated/converter32.h26
-rw-r--r--src/wrapped32/generated/functions_list.txt45
-rw-r--r--src/wrapped32/generated/wrappedlibctypes32.h1
-rw-r--r--src/wrapped32/generated/wrappedlibx11types32.h4
-rw-r--r--src/wrapped32/generated/wrappedlibxexttypes32.h2
-rw-r--r--src/wrapped32/generated/wrappedlibxrandrtypes32.h6
-rw-r--r--src/wrapped32/generated/wrappedlibxrendertypes32.h8
-rw-r--r--src/wrapped32/generated/wrapper32.c52
-rw-r--r--src/wrapped32/generated/wrapper32.h26
-rwxr-xr-xsrc/wrapped32/wrappedlibc.c3
-rwxr-xr-xsrc/wrapped32/wrappedlibc_private.h4
-rw-r--r--src/wrapped32/wrappedlibx11.c86
-rw-r--r--src/wrapped32/wrappedlibx11_private.h8
-rw-r--r--src/wrapped32/wrappedlibxcursor_private.h14
-rw-r--r--src/wrapped32/wrappedlibxext.c20
-rw-r--r--src/wrapped32/wrappedlibxext_private.h2
-rw-r--r--src/wrapped32/wrappedlibxrandr.c108
-rw-r--r--src/wrapped32/wrappedlibxrandr_private.h104
-rw-r--r--src/wrapped32/wrappedlibxrender.c69
-rw-r--r--src/wrapped32/wrappedlibxrender_private.h26
-rw-r--r--src/wrapped32/wrappedlibxxf86vm_private.h6
25 files changed, 581 insertions, 145 deletions
diff --git a/src/include/signals.h b/src/include/signals.h
index 71d6dafc..cf927503 100644
--- a/src/include/signals.h
+++ b/src/include/signals.h
@@ -25,7 +25,7 @@ typedef struct x64_sigaction_restorer_s {
 } x64_sigaction_restorer_t;
 
 #ifdef BOX32
-typedef struct i386_sigaction_s {
+typedef struct __attribute__((packed)) i386_sigaction_s {
 	union {
 	  ptr_t _sa_handler;	// sighandler_t
 	  ptr_t _sa_sigaction; //void (*_sa_sigaction)(int, siginfo_t *, void *);
@@ -35,7 +35,7 @@ typedef struct i386_sigaction_s {
 	ptr_t sa_restorer; //void (*sa_restorer)(void);
 } i386_sigaction_t;
 
-typedef struct i386_sigaction_restorer_s {
+typedef struct __attribute__((packed)) i386_sigaction_restorer_s {
 	union {
 	  ptr_t _sa_handler;	//sighandler_t
 	  ptr_t _sa_sigaction; //void (*_sa_sigaction)(int, siginfo_t *, void *);
diff --git a/src/libtools/my_x11_defs.h b/src/libtools/my_x11_defs.h
index 071b4f82..bb1f719e 100644
--- a/src/libtools/my_x11_defs.h
+++ b/src/libtools/my_x11_defs.h
@@ -894,4 +894,30 @@ typedef struct my_XF86VidModeModeInfo_s
     int*                tc_private;
 } my_XF86VidModeModeInfo_t;
 
+typedef struct my_XColor_s {
+	unsigned long pixel;
+	unsigned short red, green, blue;
+	char flags;
+	char pad;
+} my_XColor_t;
+
+typedef struct my_XRRProviderInfo_s {
+    unsigned int    capabilities;
+    int             ncrtcs;
+    XID*            crtcs;
+    int             noutputs;
+    XID*            outputs;
+    char*           name;
+    int             nassociatedproviders;
+    XID*            associated_providers;
+    unsigned int*   associated_capability;
+    int             nameLen;
+} my_XRRProviderInfo_t;
+
+typedef struct my_XRRProviderResources_t {
+    unsigned long   timestamp;
+    int             nproviders;
+    XID*            providers;
+} my_XRRProviderResources_t;
+
 #endif//MY_X11_DEFS
\ No newline at end of file
diff --git a/src/libtools/my_x11_defs_32.h b/src/libtools/my_x11_defs_32.h
index 98f71ee3..e480de36 100644
--- a/src/libtools/my_x11_defs_32.h
+++ b/src/libtools/my_x11_defs_32.h
@@ -827,4 +827,30 @@ typedef struct my_XF86VidModeModeInfo_32_s
     ptr_t               tc_private;
 } my_XF86VidModeModeInfo_32_t;
 
+typedef struct my_XColor_32_s {
+	ulong_t pixel;
+	unsigned short red, green, blue;
+	char flags;
+	char pad;
+} my_XColor_32_t;
+
+typedef struct my_XRRProviderInfo_32_s {
+    unsigned int    capabilities;
+    int             ncrtcs;
+    ptr_t           crtcs;  //XID*
+    int             noutputs;
+    ptr_t           outputs;    //XID*
+    ptr_t           name;   //char*
+    int             nassociatedproviders;
+    ptr_t           associated_providers;   //XID*
+    ptr_t           associated_capability;  //unsigned int*
+    int             nameLen;
+} my_XRRProviderInfo_32_t;
+
+typedef struct my_XRRProviderResources_32_t {
+    ulong_t   timestamp;
+    int       nproviders;
+    ptr_t     providers;    //XID*
+} my_XRRProviderResources_32_t;
+
 #endif//MY_X11_DEFS_32
\ No newline at end of file
diff --git a/src/wrapped32/generated/converter32.c b/src/wrapped32/generated/converter32.c
index 2f3f606e..06b322e9 100644
--- a/src/wrapped32/generated/converter32.c
+++ b/src/wrapped32/generated/converter32.c
@@ -688,3 +688,53 @@ void to_struct_pLiiiLLLii(ptr_t d, const struct_pLiiiLLLii_t *src) {
 	*(int*)dest = src->i8; dest += 4;
 	*(int*)dest = src->i9; dest += 4;
 }
+
+void from_struct_LiiuL(struct_LiiuL_t *dest, ptr_t s) {
+	uint8_t* src = (uint8_t*)from_ptrv(s);
+	dest->L0 = from_ulong(*(long_t*)src); src += 4;
+	dest->i1 = *(int*)src; src += 4;
+	dest->i2 = *(int*)src; src += 4;
+	dest->u3 = *(uint32_t*)src; src += 4;
+	dest->L4 = from_ulong(*(long_t*)src); src += 4;
+}
+void to_struct_LiiuL(ptr_t d, const struct_LiiuL_t *src) {
+	if (!src) return;
+	uint8_t* dest = (uint8_t*)from_ptrv(d);
+	*(ulong_t*)dest = to_ulong(src->L0); dest += 4;
+	*(int*)dest = src->i1; dest += 4;
+	*(int*)dest = src->i2; dest += 4;
+	*(uint32_t*)dest = src->u3; dest += 4;
+	*(ulong_t*)dest = to_ulong(src->L4); dest += 4;
+}
+
+void from_struct_WWWWWWWWWuip(struct_WWWWWWWWWuip_t *dest, ptr_t s) {
+	uint8_t* src = (uint8_t*)from_ptrv(s);
+	dest->W0 = *(uint16_t*)src; src += 2;
+	dest->W1 = *(uint16_t*)src; src += 2;
+	dest->W2 = *(uint16_t*)src; src += 2;
+	dest->W3 = *(uint16_t*)src; src += 2;
+	dest->W4 = *(uint16_t*)src; src += 2;
+	dest->W5 = *(uint16_t*)src; src += 2;
+	dest->W6 = *(uint16_t*)src; src += 2;
+	dest->W7 = *(uint16_t*)src; src += 2;
+	dest->W8 = *(uint16_t*)src; src += 2;
+	dest->u9 = *(uint32_t*)src; src += 4;
+	dest->i10 = *(int*)src; src += 4;
+	dest->p11 = from_ptrv(*(ptr_t*)src); src += 4;
+}
+void to_struct_WWWWWWWWWuip(ptr_t d, const struct_WWWWWWWWWuip_t *src) {
+	if (!src) return;
+	uint8_t* dest = (uint8_t*)from_ptrv(d);
+	*(uint16_t*)dest = src->W0; dest += 2;
+	*(uint16_t*)dest = src->W1; dest += 2;
+	*(uint16_t*)dest = src->W2; dest += 2;
+	*(uint16_t*)dest = src->W3; dest += 2;
+	*(uint16_t*)dest = src->W4; dest += 2;
+	*(uint16_t*)dest = src->W5; dest += 2;
+	*(uint16_t*)dest = src->W6; dest += 2;
+	*(uint16_t*)dest = src->W7; dest += 2;
+	*(uint16_t*)dest = src->W8; dest += 2;
+	*(uint32_t*)dest = src->u9; dest += 4;
+	*(int*)dest = src->i10; dest += 4;
+	*(ulong_t*)dest = to_ptrv(src->p11); dest += 4;
+}
diff --git a/src/wrapped32/generated/converter32.h b/src/wrapped32/generated/converter32.h
index e040e8ff..ce7aa46d 100644
--- a/src/wrapped32/generated/converter32.h
+++ b/src/wrapped32/generated/converter32.h
@@ -346,5 +346,31 @@ typedef struct struct_pLiiiLLLii_s {
 } struct_pLiiiLLLii_t;
 void from_struct_pLiiiLLLii(struct_pLiiiLLLii_t *dest, ptr_t src);
 void to_struct_pLiiiLLLii(ptr_t dest, const struct_pLiiiLLLii_t *src);
+typedef struct struct_LiiuL_s {
+	unsigned long L0;
+	int i1;
+	int i2;
+	uint32_t u3;
+	unsigned long L4;
+} struct_LiiuL_t;
+void from_struct_LiiuL(struct_LiiuL_t *dest, ptr_t src);
+void to_struct_LiiuL(ptr_t dest, const struct_LiiuL_t *src);
+typedef struct struct_WWWWWWWWWuip_s {
+	uint16_t W0;
+	uint16_t W1;
+	uint16_t W2;
+	uint16_t W3;
+	uint16_t W4;
+	uint16_t W5;
+	uint16_t W6;
+	uint16_t W7;
+	uint16_t W8;
+	uint32_t u9;
+	int i10;
+	void* p11;
+	unsigned long L4;
+} struct_WWWWWWWWWuip_t;
+void from_struct_WWWWWWWWWuip(struct_WWWWWWWWWuip_t *dest, ptr_t src);
+void to_struct_WWWWWWWWWuip(ptr_t dest, const struct_WWWWWWWWWuip_t *src);
 
 #endif // __CONVERTER_H_
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index 19599d02..4ec5ada9 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -17,6 +17,7 @@
 #() cFi -> cFi
 #() cFu -> cFu
 #() cFp -> cFp
+#() wFp -> wFp
 #() iFv -> iFv
 #() iFi -> iFi
 #() iFI -> iFI
@@ -179,6 +180,7 @@
 #() CFpi -> CFpi
 #() CFpp -> CFpp
 #() CFXL -> CFXL
+#() WFpp -> WFpp
 #() uFEp -> uFEp
 #() uFii -> uFii
 #() uFiS -> uFiS
@@ -254,6 +256,7 @@
 #() iFXbL_ -> iFXB
 #() fFpBp_ -> fFpB
 #() dFpBp_ -> dFpB
+#() LFpbL_ -> LFpB
 #() pFrl_p -> pFBp
 #() vFBll_l -> vFBl
 #() iFuBLL_ -> iFuB
@@ -268,6 +271,7 @@
 #() iFXbiip_ -> iFXB
 #() iFXbLipi_ -> iFXB
 #() iFrLL_BLL_ -> iFBB
+#() LFXrLiiuL_ -> LFXB
 #() vFbll_rllll_ -> vFBB
 #() iFXbiiuuLip_ -> iFXB
 #() iFpruuipWCCp_ -> iFpB
@@ -343,6 +347,7 @@
 #() vFppi -> vFppi
 #() vFppu -> vFppu
 #() vFppp -> vFppp
+#() vFXLi -> vFXLi
 #() vFXLL -> vFXLL
 #() vFXLp -> vFXLp
 #() vFXpi -> vFXpi
@@ -425,6 +430,7 @@
 #() CFipp -> CFipp
 #() CFuUu -> CFuUu
 #() CFuff -> CFuff
+#() WFXip -> WFXip
 #() uFEpu -> uFEpu
 #() uFEpL -> uFEpL
 #() uFilp -> uFilp
@@ -530,6 +536,7 @@
 #() vFXLbpLiL_ -> vFXLB
 #() iFXLbpLiL_ -> iFXLB
 #() iFXLbLLii_ -> iFXLB
+#() pFXrLiiuL_p -> pFXBp
 #() iFXLbLWWWcc_ -> iFXLB
 #() iFirLLLL_BLLLL_ -> iFiBB
 #() pFppriiiiiiiiilt_ -> pFppB
@@ -741,8 +748,8 @@
 #() pFppLL -> pFppLL
 #() pFpppp -> pFpppp
 #() pFXiii -> pFXiii
+#() pFXiip -> pFXiip
 #() pFXCip -> pFXCip
-#() pFXLpi -> pFXLpi
 #() pFXLpp -> pFXLpp
 #() pFXppp -> pFXppp
 #() vFbp_ppp -> vFBppp
@@ -771,6 +778,7 @@
 #() vFXLbLLLLLLLLLL_L -> vFXLBL
 #() iFXLbLLLLLLLLLL_L -> iFXLBL
 #() LFpLpriiiiiiiiilt_ -> LFpLpB
+#() iFXipBWWWWWWWWWuip_ -> iFXipB
 #() iFXLbLWWWcc_bLWWWcc_ -> iFXLBB
 #() iFXLLbLLLLiiiLLilliLL_ -> iFXLLB
 #() iFpruuipWCCp_buuipWCCp_i -> iFpBBi
@@ -926,7 +934,6 @@
 #() LFpLppa -> LFpLppa
 #() LFXLuuu -> LFXLuuu
 #() LFXLpuu -> LFXLpuu
-#() LFXLpLp -> LFXLpLp
 #() LFXpppi -> LFXpppi
 #() pFEppip -> pFEppip
 #() pFEXipp -> pFEXipp
@@ -955,11 +962,13 @@
 #() vFbp_ppibup_ -> vFBppiB
 #() iFEXbpLiL_pp -> iFEXBpp
 #() iFpppbp_bup_ -> iFpppBB
+#() LFXLrLiiuL_Lp -> LFXLBLp
+#() pFEXLrLiiuL_i -> pFEXLBi
 #() iFXbp_iubpLiL_ -> iFXBiuB
 #() iFXLiubiiiiiLi_ -> iFXLiuB
 #() LFLbp_bL_bp_bL_ -> LFLBBBB
 #() vFXLbLLLLLLLLLL_iL -> vFXLBiL
-#() iFXiiibpLiiiLLLii_ -> iFXiiiB
+#() iFXiiiBpLiiiLLLii_ -> iFXiiiB
 #() LFpLpriiiiiiiiilt_a -> LFpLpBa
 #() iFXLpbLWWWcc_bLWWWcc_ -> iFXLpBB
 #() iFXLpBLWWWcc_BLWWWcc_ -> iFXLpBB
@@ -1033,6 +1042,7 @@
 #() vFXLiiii -> vFXLiiii
 #() vFXLiiiL -> vFXLiiiL
 #() vFXLiipi -> vFXLiipi
+#() vFXLpppi -> vFXLpppi
 #() iFEiippi -> iFEiippi
 #() iFEuppLp -> iFEuppLp
 #() iFEpiuuu -> iFEpiuuu
@@ -1064,6 +1074,7 @@
 #() iFXLpppp -> iFXLpppp
 #() iFXpIppp -> iFXpIppp
 #() iFXpuiii -> iFXpuiii
+#() iFXpLiWL -> iFXpLiWL
 #() iFXpLLiL -> iFXpLLiL
 #() iFXppppi -> iFXppppi
 #() iFXppppp -> iFXppppp
@@ -1162,12 +1173,14 @@
 #() iFXLpiipi -> iFXLpiipi
 #() iFXLppiii -> iFXLppiii
 #() iFXpiipii -> iFXpiipii
+#() iFXpLiWwL -> iFXpLiWwL
 #() iFXpLuuii -> iFXpLuuii
 #() uFuippppp -> uFuippppp
 #() pFEpiiiiu -> pFEpiiiiu
 #() pFEpLiiii -> pFEpLiiii
 #() pFEpLiiiI -> pFEpLiiiI
 #() pFEpLiiil -> pFEpLiiil
+#() vFXLLiiibl_ -> vFXLLiiiB
 #() iFEpppibL_p -> iFEpppiBp
 #() iFXLibL_ubL_u -> iFXLiBuBu
 #() vFXLpiibpiip_i -> vFXLpiiBi
@@ -1204,6 +1217,7 @@
 #() vFffffffff -> vFffffffff
 #() vFXiLpiiuu -> vFXiLpiiuu
 #() vFXLiiiLii -> vFXLiiiLii
+#() vFXLLLiipi -> vFXLLLiipi
 #() vFXLppiipi -> vFXLppiipi
 #() iFEpippppp -> iFEpippppp
 #() iFEpLiLppp -> iFEpLiLppp
@@ -1262,6 +1276,7 @@
 #() pFEXLiiuuLi -> pFEXLiiuuLi
 #() iFXLbL_pppppp -> iFXLBpppppp
 #() iFXLbL_bL_ppppp -> iFXLBBppppp
+#() vFXiLLrLiiuL_iipi -> vFXiLLBiipi
 #() pFEXbpLiLLLii_uipbLipi_uu -> pFEXBuipBuu
 #() vFEXLpppippp -> vFEXLpppippp
 #() vFiiiiiiiiii -> vFiiiiiiiiii
@@ -1303,12 +1318,12 @@
 #() vFUufffffffff -> vFUufffffffff
 #() vFpiiiiiiiiuu -> vFpiiiiiiiiuu
 #() vFpipipiipiiu -> vFpipipiipiiu
-#() vFXiLLpiiiipi -> vFXiLLpiiiipi
 #() iFEXLppiiiiuu -> iFEXLppiiiiuu
 #() iFEXpLLiiLWpi -> iFEXpLLiiLWpi
 #() iFuiiiiuuiiip -> iFuiiiiuuiiip
 #() iFXLLpiiuuiiL -> iFXLLpiiuuiiL
 #() pFEXpuiipuuii -> pFEXpuiipuuii
+#() vFXiLLrLiiuL_iiiipi -> vFXiLLBiiiipi
 #() iFXLibL_iiiibL_bL_bL_ -> iFXLiBiiiiBBB
 #() vFuiiiiiiiiuUC -> vFuiiiiiiiiuUC
 #() vFuiiiiiiiuuip -> vFuiiiiiiiuuip
@@ -1318,10 +1333,10 @@
 #() vFuuuuuuuuuuuu -> vFuuuuuuuuuuuu
 #() vFffffffffffff -> vFffffffffffff
 #() vFXiLLpiiiipii -> vFXiLLpiiiipii
-#() vFXiLLpLiiiipi -> vFXiLLpLiiiipi
 #() iFEXLppiiiiuui -> iFEXLppiiiiuui
 #() iFXLpppppppppp -> iFXLpppppppppp
 #() pFEXLiiuuLipii -> pFEXLiiuuLipii
+#() vFXiLLrLiiuL_Liiiipi -> vFXiLLBLiiiipi
 #() iFXLLlliLBL_pBL_BL_Bp_ -> iFXLLlliLBpBBB
 #() vFuiiiiiiiiiuup -> vFuiiiiiiiiiuup
 #() vFuuuuuuuuuuuuu -> vFuuuuuuuuuuuuu
@@ -1332,6 +1347,7 @@
 #() iFXippuuuiipppp -> iFXippuuuiipppp
 #() uFippuuuulllipp -> uFippuuuulllipp
 #() LFEXLiiuuuiupLp -> LFEXLiiuuuiupLp
+#() iFXLLlliiLBL_pBL_BL_Bp_ -> iFXLLlliiLBpBBB
 #() vFuffiiffiiffiip -> vFuffiiffiiffiip
 #() vFuddiiddiiddiip -> vFuddiiddiiddiip
 #() vFuiiiiiuiiiiilll -> vFuiiiiiuiiiiilll
@@ -1494,6 +1510,7 @@ wrappedlibc:
 - vFip:
 - vFpi:
 - vFpu:
+- vFpp:
 - iFip:
   - futimens
   - futimes
@@ -1882,15 +1899,15 @@ wrappedlibx11:
   - XESetCloseDisplay
 - iFpLlp:
   - XWindowEvent
-- iFpppp:
-  - XCheckIfEvent
 - iFXLip:
   - XCheckTypedWindowEvent
 - iFXLlp:
   - XCheckWindowEvent
 - iFXLpi:
+  - XQueryColors
   - XSetWMProtocols
 - iFXppp:
+  - XCheckIfEvent
   - XIfEvent
 - pFXlpp:
   - XGetVisualInfo
@@ -1938,6 +1955,8 @@ wrappedlibxcursor:
 wrappedlibxext:
 - vFp:
   - XdbeFreeVisualInfo
+- pFp:
+  - XSetExtensionErrorHandler
 - pFXpp:
   - XdbeGetVisualInfo
 - iFXLpiiL:
@@ -1948,17 +1967,29 @@ wrappedlibxext:
   - XShmPutImage
 wrappedlibxfixes:
 wrappedlibxrandr:
+- vFp:
+  - XRRFreeProviderInfo
+  - XRRFreeProviderResources
 - pFXL:
+  - XRRGetProviderResources
   - XRRGetScreenResources
+  - XRRGetScreenResourcesCurrent
 - pFXpL:
   - XRRGetCrtcInfo
   - XRRGetOutputInfo
   - XRRGetPanning
+  - XRRGetProviderInfo
 - iFXpLp:
   - XRRSetPanning
 - iFXpLLiiLWpi:
   - XRRSetCrtcConfig
 wrappedlibxrender:
+- pFXi:
+  - XRenderFindStandardFormat
+- pFXp:
+  - XRenderFindVisualFormat
+- pFXLrLiiuL_i:
+  - XRenderFindFormat
 wrappedlibxxf86vm:
 - iFXipp:
   - XF86VidModeGetAllModeLines
diff --git a/src/wrapped32/generated/wrappedlibctypes32.h b/src/wrapped32/generated/wrappedlibctypes32.h
index c712c92d..78cd3c1e 100644
--- a/src/wrapped32/generated/wrappedlibctypes32.h
+++ b/src/wrapped32/generated/wrappedlibctypes32.h
@@ -36,6 +36,7 @@ typedef void* (*pFriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*);
 typedef void (*vFip_t)(int32_t, void*);
 typedef void (*vFpi_t)(void*, int32_t);
 typedef void (*vFpu_t)(void*, uint32_t);
+typedef void (*vFpp_t)(void*, void*);
 typedef int32_t (*iFip_t)(int32_t, void*);
 typedef int32_t (*iFup_t)(uint32_t, void*);
 typedef int32_t (*iFpi_t)(void*, int32_t);
diff --git a/src/wrapped32/generated/wrappedlibx11types32.h b/src/wrapped32/generated/wrappedlibx11types32.h
index 31bc4cf1..bb7be7d8 100644
--- a/src/wrapped32/generated/wrappedlibx11types32.h
+++ b/src/wrapped32/generated/wrappedlibx11types32.h
@@ -31,7 +31,6 @@ typedef int32_t (*iFXLp_t)(void*, uintptr_t, void*);
 typedef uintptr_t (*LFXii_t)(void*, int32_t, int32_t);
 typedef void* (*pFXip_t)(void*, int32_t, void*);
 typedef int32_t (*iFpLlp_t)(void*, uintptr_t, intptr_t, void*);
-typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
 typedef int32_t (*iFXLip_t)(void*, uintptr_t, int32_t, void*);
 typedef int32_t (*iFXLlp_t)(void*, uintptr_t, intptr_t, void*);
 typedef int32_t (*iFXLpi_t)(void*, uintptr_t, void*, int32_t);
@@ -90,10 +89,11 @@ typedef uintptr_t (*LFXLiiuuuiupLp_t)(void*, uintptr_t, int32_t, int32_t, uint32
 	GO(XGetPixel, LFXii_t) \
 	GO(XESetCloseDisplay, pFXip_t) \
 	GO(XWindowEvent, iFpLlp_t) \
-	GO(XCheckIfEvent, iFpppp_t) \
 	GO(XCheckTypedWindowEvent, iFXLip_t) \
 	GO(XCheckWindowEvent, iFXLlp_t) \
+	GO(XQueryColors, iFXLpi_t) \
 	GO(XSetWMProtocols, iFXLpi_t) \
+	GO(XCheckIfEvent, iFXppp_t) \
 	GO(XIfEvent, iFXppp_t) \
 	GO(XGetVisualInfo, pFXlpp_t) \
 	GO(XmbTextPropertyToTextList, iFXbpLiL_pp_t) \
diff --git a/src/wrapped32/generated/wrappedlibxexttypes32.h b/src/wrapped32/generated/wrappedlibxexttypes32.h
index e82da04b..fa6d4f69 100644
--- a/src/wrapped32/generated/wrappedlibxexttypes32.h
+++ b/src/wrapped32/generated/wrappedlibxexttypes32.h
@@ -12,6 +12,7 @@
 #endif
 
 typedef void (*vFp_t)(void*);
+typedef void* (*pFp_t)(void*);
 typedef void* (*pFXpp_t)(void*, void*, void*);
 typedef int32_t (*iFXLpiiL_t)(void*, uintptr_t, void*, int32_t, int32_t, uintptr_t);
 typedef void* (*pFXbpLiLLLii_uipbLipi_uu_t)(void*, struct_pLiLLLii_t*, uint32_t, int32_t, void*, struct_Lipi_t*, uint32_t, uint32_t);
@@ -19,6 +20,7 @@ typedef int32_t (*iFXLppiiiiuui_t)(void*, uintptr_t, void*, void*, int32_t, int3
 
 #define SUPER() ADDED_FUNCTIONS() \
 	GO(XdbeFreeVisualInfo, vFp_t) \
+	GO(XSetExtensionErrorHandler, pFp_t) \
 	GO(XdbeGetVisualInfo, pFXpp_t) \
 	GO(XShmGetImage, iFXLpiiL_t) \
 	GO(XShmCreateImage, pFXbpLiLLLii_uipbLipi_uu_t) \
diff --git a/src/wrapped32/generated/wrappedlibxrandrtypes32.h b/src/wrapped32/generated/wrappedlibxrandrtypes32.h
index a186e0e2..d50f7515 100644
--- a/src/wrapped32/generated/wrappedlibxrandrtypes32.h
+++ b/src/wrapped32/generated/wrappedlibxrandrtypes32.h
@@ -11,16 +11,22 @@
 #define ADDED_FUNCTIONS() 
 #endif
 
+typedef void (*vFp_t)(void*);
 typedef void* (*pFXL_t)(void*, uintptr_t);
 typedef void* (*pFXpL_t)(void*, void*, uintptr_t);
 typedef int32_t (*iFXpLp_t)(void*, void*, uintptr_t, void*);
 typedef int32_t (*iFXpLLiiLWpi_t)(void*, void*, uintptr_t, uintptr_t, int32_t, int32_t, uintptr_t, uint16_t, void*, int32_t);
 
 #define SUPER() ADDED_FUNCTIONS() \
+	GO(XRRFreeProviderInfo, vFp_t) \
+	GO(XRRFreeProviderResources, vFp_t) \
+	GO(XRRGetProviderResources, pFXL_t) \
 	GO(XRRGetScreenResources, pFXL_t) \
+	GO(XRRGetScreenResourcesCurrent, pFXL_t) \
 	GO(XRRGetCrtcInfo, pFXpL_t) \
 	GO(XRRGetOutputInfo, pFXpL_t) \
 	GO(XRRGetPanning, pFXpL_t) \
+	GO(XRRGetProviderInfo, pFXpL_t) \
 	GO(XRRSetPanning, iFXpLp_t) \
 	GO(XRRSetCrtcConfig, iFXpLLiiLWpi_t)
 
diff --git a/src/wrapped32/generated/wrappedlibxrendertypes32.h b/src/wrapped32/generated/wrappedlibxrendertypes32.h
index f00ac8d4..04ddf45d 100644
--- a/src/wrapped32/generated/wrappedlibxrendertypes32.h
+++ b/src/wrapped32/generated/wrappedlibxrendertypes32.h
@@ -11,7 +11,13 @@
 #define ADDED_FUNCTIONS() 
 #endif
 
+typedef void* (*pFXi_t)(void*, int32_t);
+typedef void* (*pFXp_t)(void*, void*);
+typedef void* (*pFXLrLiiuL_i_t)(void*, uintptr_t, struct_LiiuL_t*, int32_t);
 
-#define SUPER() ADDED_FUNCTIONS()
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(XRenderFindStandardFormat, pFXi_t) \
+	GO(XRenderFindVisualFormat, pFXp_t) \
+	GO(XRenderFindFormat, pFXLrLiiuL_i_t)
 
 #endif // __wrappedlibxrenderTYPES32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index d8fd03f0..0483172f 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -107,6 +107,7 @@ typedef int8_t (*cFc_t)(int8_t);
 typedef int8_t (*cFi_t)(int32_t);
 typedef int8_t (*cFu_t)(uint32_t);
 typedef int8_t (*cFp_t)(void*);
+typedef int16_t (*wFp_t)(void*);
 typedef int32_t (*iFv_t)(void);
 typedef int32_t (*iFi_t)(int32_t);
 typedef int32_t (*iFI_t)(int64_t);
@@ -269,6 +270,7 @@ typedef uint8_t (*CFuU_t)(uint32_t, uint64_t);
 typedef uint8_t (*CFpi_t)(void*, int32_t);
 typedef uint8_t (*CFpp_t)(void*, void*);
 typedef uint8_t (*CFXL_t)(void*, uintptr_t);
+typedef uint16_t (*WFpp_t)(void*, void*);
 typedef uint32_t (*uFEp_t)(x64emu_t*, void*);
 typedef uint32_t (*uFii_t)(int32_t, int32_t);
 typedef uint32_t (*uFiS_t)(int32_t, void*);
@@ -344,6 +346,7 @@ typedef int32_t (*iFHBp__t)(uintptr_t, struct_p_t*);
 typedef int32_t (*iFXbL__t)(void*, struct_L_t*);
 typedef float (*fFpBp__t)(void*, struct_p_t*);
 typedef double (*dFpBp__t)(void*, struct_p_t*);
+typedef uintptr_t (*LFpbL__t)(void*, struct_L_t*);
 typedef void* (*pFrl_p_t)(struct_l_t*, void*);
 typedef void (*vFBll_l_t)(struct_ll_t*, intptr_t);
 typedef int32_t (*iFuBLL__t)(uint32_t, struct_LL_t*);
@@ -358,6 +361,7 @@ typedef int32_t (*iFbppi_i_t)(struct_ppi_t*, int32_t);
 typedef int32_t (*iFXbiip__t)(void*, struct_iip_t*);
 typedef int32_t (*iFXbLipi__t)(void*, struct_Lipi_t*);
 typedef int32_t (*iFrLL_BLL__t)(struct_LL_t*, struct_LL_t*);
+typedef uintptr_t (*LFXrLiiuL__t)(void*, struct_LiiuL_t*);
 typedef void (*vFbll_rllll__t)(struct_ll_t*, struct_llll_t*);
 typedef int32_t (*iFXbiiuuLip__t)(void*, struct_iiuuLip_t*);
 typedef int32_t (*iFpruuipWCCp__t)(void*, struct_uuipWCCp_t*);
@@ -433,6 +437,7 @@ typedef void (*vFplp_t)(void*, intptr_t, void*);
 typedef void (*vFppi_t)(void*, void*, int32_t);
 typedef void (*vFppu_t)(void*, void*, uint32_t);
 typedef void (*vFppp_t)(void*, void*, void*);
+typedef void (*vFXLi_t)(void*, uintptr_t, int32_t);
 typedef void (*vFXLL_t)(void*, uintptr_t, uintptr_t);
 typedef void (*vFXLp_t)(void*, uintptr_t, void*);
 typedef void (*vFXpi_t)(void*, void*, int32_t);
@@ -515,6 +520,7 @@ typedef int64_t (*IFpIi_t)(void*, int64_t, int32_t);
 typedef uint8_t (*CFipp_t)(int32_t, void*, void*);
 typedef uint8_t (*CFuUu_t)(uint32_t, uint64_t, uint32_t);
 typedef uint8_t (*CFuff_t)(uint32_t, float, float);
+typedef uint16_t (*WFXip_t)(void*, int32_t, void*);
 typedef uint32_t (*uFEpu_t)(x64emu_t*, void*, uint32_t);
 typedef uint32_t (*uFEpL_t)(x64emu_t*, void*, uintptr_t);
 typedef uint32_t (*uFilp_t)(int32_t, intptr_t, void*);
@@ -620,6 +626,7 @@ typedef int32_t (*iFXbiip_i_t)(void*, struct_iip_t*, int32_t);
 typedef void (*vFXLbpLiL__t)(void*, uintptr_t, struct_pLiL_t*);
 typedef int32_t (*iFXLbpLiL__t)(void*, uintptr_t, struct_pLiL_t*);
 typedef int32_t (*iFXLbLLii__t)(void*, uintptr_t, struct_LLii_t*);
+typedef void* (*pFXrLiiuL_p_t)(void*, struct_LiiuL_t*, void*);
 typedef int32_t (*iFXLbLWWWcc__t)(void*, uintptr_t, struct_LWWWcc_t*);
 typedef int32_t (*iFirLLLL_BLLLL__t)(int32_t, struct_LLLL_t*, struct_LLLL_t*);
 typedef void* (*pFppriiiiiiiiilt__t)(void*, void*, struct_iiiiiiiiilt_t*);
@@ -831,8 +838,8 @@ typedef void* (*pFpLiS_t)(void*, uintptr_t, int32_t, void*);
 typedef void* (*pFppLL_t)(void*, void*, uintptr_t, uintptr_t);
 typedef void* (*pFpppp_t)(void*, void*, void*, void*);
 typedef void* (*pFXiii_t)(void*, int32_t, int32_t, int32_t);
+typedef void* (*pFXiip_t)(void*, int32_t, int32_t, void*);
 typedef void* (*pFXCip_t)(void*, uint8_t, int32_t, void*);
-typedef void* (*pFXLpi_t)(void*, uintptr_t, void*, int32_t);
 typedef void* (*pFXLpp_t)(void*, uintptr_t, void*, void*);
 typedef void* (*pFXppp_t)(void*, void*, void*, void*);
 typedef void (*vFbp_ppp_t)(struct_p_t*, void*, void*, void*);
@@ -861,6 +868,7 @@ typedef int32_t (*iFXLubiiiiiLi__t)(void*, uintptr_t, uint32_t, struct_iiiiiLi_t
 typedef void (*vFXLbLLLLLLLLLL_L_t)(void*, uintptr_t, struct_LLLLLLLLLL_t*, uintptr_t);
 typedef int32_t (*iFXLbLLLLLLLLLL_L_t)(void*, uintptr_t, struct_LLLLLLLLLL_t*, uintptr_t);
 typedef uintptr_t (*LFpLpriiiiiiiiilt__t)(void*, uintptr_t, void*, struct_iiiiiiiiilt_t*);
+typedef int32_t (*iFXipBWWWWWWWWWuip__t)(void*, int32_t, void*, struct_WWWWWWWWWuip_t*);
 typedef int32_t (*iFXLbLWWWcc_bLWWWcc__t)(void*, uintptr_t, struct_LWWWcc_t*, struct_LWWWcc_t*);
 typedef int32_t (*iFXLLbLLLLiiiLLilliLL__t)(void*, uintptr_t, uintptr_t, struct_LLLLiiiLLilliLL_t*);
 typedef int32_t (*iFpruuipWCCp_buuipWCCp_i_t)(void*, struct_uuipWCCp_t*, struct_uuipWCCp_t*, int32_t);
@@ -1016,7 +1024,6 @@ typedef uintptr_t (*LFEppLL_t)(x64emu_t*, void*, void*, uintptr_t, uintptr_t);
 typedef uintptr_t (*LFpLppa_t)(void*, uintptr_t, void*, void*, void*);
 typedef uintptr_t (*LFXLuuu_t)(void*, uintptr_t, uint32_t, uint32_t, uint32_t);
 typedef uintptr_t (*LFXLpuu_t)(void*, uintptr_t, void*, uint32_t, uint32_t);
-typedef uintptr_t (*LFXLpLp_t)(void*, uintptr_t, void*, uintptr_t, void*);
 typedef uintptr_t (*LFXpppi_t)(void*, void*, void*, void*, int32_t);
 typedef void* (*pFEppip_t)(x64emu_t*, void*, void*, int32_t, void*);
 typedef void* (*pFEXipp_t)(x64emu_t*, void*, int32_t, void*, void*);
@@ -1045,11 +1052,13 @@ typedef int32_t (*iFiiuBp_Bp__t)(int32_t, int32_t, uint32_t, struct_p_t*, struct
 typedef void (*vFbp_ppibup__t)(struct_p_t*, void*, void*, int32_t, struct_up_t*);
 typedef int32_t (*iFEXbpLiL_pp_t)(x64emu_t*, void*, struct_pLiL_t*, void*, void*);
 typedef int32_t (*iFpppbp_bup__t)(void*, void*, void*, struct_p_t*, struct_up_t*);
+typedef uintptr_t (*LFXLrLiiuL_Lp_t)(void*, uintptr_t, struct_LiiuL_t*, uintptr_t, void*);
+typedef void* (*pFEXLrLiiuL_i_t)(x64emu_t*, void*, uintptr_t, struct_LiiuL_t*, int32_t);
 typedef int32_t (*iFXbp_iubpLiL__t)(void*, struct_p_t*, int32_t, uint32_t, struct_pLiL_t*);
 typedef int32_t (*iFXLiubiiiiiLi__t)(void*, uintptr_t, int32_t, uint32_t, struct_iiiiiLi_t*);
 typedef uintptr_t (*LFLbp_bL_bp_bL__t)(uintptr_t, struct_p_t*, struct_L_t*, struct_p_t*, struct_L_t*);
 typedef void (*vFXLbLLLLLLLLLL_iL_t)(void*, uintptr_t, struct_LLLLLLLLLL_t*, int32_t, uintptr_t);
-typedef int32_t (*iFXiiibpLiiiLLLii__t)(void*, int32_t, int32_t, int32_t, struct_pLiiiLLLii_t*);
+typedef int32_t (*iFXiiiBpLiiiLLLii__t)(void*, int32_t, int32_t, int32_t, struct_pLiiiLLLii_t*);
 typedef uintptr_t (*LFpLpriiiiiiiiilt_a_t)(void*, uintptr_t, void*, struct_iiiiiiiiilt_t*, void*);
 typedef int32_t (*iFXLpbLWWWcc_bLWWWcc__t)(void*, uintptr_t, void*, struct_LWWWcc_t*, struct_LWWWcc_t*);
 typedef int32_t (*iFXLpBLWWWcc_BLWWWcc__t)(void*, uintptr_t, void*, struct_LWWWcc_t*, struct_LWWWcc_t*);
@@ -1123,6 +1132,7 @@ typedef void (*vFXiLppi_t)(void*, int32_t, uintptr_t, void*, void*, int32_t);
 typedef void (*vFXLiiii_t)(void*, uintptr_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFXLiiiL_t)(void*, uintptr_t, int32_t, int32_t, int32_t, uintptr_t);
 typedef void (*vFXLiipi_t)(void*, uintptr_t, int32_t, int32_t, void*, int32_t);
+typedef void (*vFXLpppi_t)(void*, uintptr_t, void*, void*, void*, int32_t);
 typedef int32_t (*iFEiippi_t)(x64emu_t*, int32_t, int32_t, void*, void*, int32_t);
 typedef int32_t (*iFEuppLp_t)(x64emu_t*, uint32_t, void*, void*, uintptr_t, void*);
 typedef int32_t (*iFEpiuuu_t)(x64emu_t*, void*, int32_t, uint32_t, uint32_t, uint32_t);
@@ -1154,6 +1164,7 @@ typedef int32_t (*iFXLppii_t)(void*, uintptr_t, void*, void*, int32_t, int32_t);
 typedef int32_t (*iFXLpppp_t)(void*, uintptr_t, void*, void*, void*, void*);
 typedef int32_t (*iFXpIppp_t)(void*, void*, int64_t, void*, void*, void*);
 typedef int32_t (*iFXpuiii_t)(void*, void*, uint32_t, int32_t, int32_t, int32_t);
+typedef int32_t (*iFXpLiWL_t)(void*, void*, uintptr_t, int32_t, uint16_t, uintptr_t);
 typedef int32_t (*iFXpLLiL_t)(void*, void*, uintptr_t, uintptr_t, int32_t, uintptr_t);
 typedef int32_t (*iFXppppi_t)(void*, void*, void*, void*, void*, int32_t);
 typedef int32_t (*iFXppppp_t)(void*, void*, void*, void*, void*, void*);
@@ -1252,12 +1263,14 @@ typedef int32_t (*iFXLpiiuu_t)(void*, uintptr_t, void*, int32_t, int32_t, uint32
 typedef int32_t (*iFXLpiipi_t)(void*, uintptr_t, void*, int32_t, int32_t, void*, int32_t);
 typedef int32_t (*iFXLppiii_t)(void*, uintptr_t, void*, void*, int32_t, int32_t, int32_t);
 typedef int32_t (*iFXpiipii_t)(void*, void*, int32_t, int32_t, void*, int32_t, int32_t);
+typedef int32_t (*iFXpLiWwL_t)(void*, void*, uintptr_t, int32_t, uint16_t, int16_t, uintptr_t);
 typedef int32_t (*iFXpLuuii_t)(void*, void*, uintptr_t, uint32_t, uint32_t, int32_t, int32_t);
 typedef uint32_t (*uFuippppp_t)(uint32_t, int32_t, void*, void*, void*, void*, void*);
 typedef void* (*pFEpiiiiu_t)(x64emu_t*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t);
 typedef void* (*pFEpLiiii_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, int32_t, int32_t);
 typedef void* (*pFEpLiiiI_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, int32_t, int64_t);
 typedef void* (*pFEpLiiil_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, int32_t, intptr_t);
+typedef void (*vFXLLiiibl__t)(void*, uintptr_t, uintptr_t, int32_t, int32_t, int32_t, struct_l_t*);
 typedef int32_t (*iFEpppibL_p_t)(x64emu_t*, void*, void*, void*, int32_t, struct_L_t*, void*);
 typedef int32_t (*iFXLibL_ubL_u_t)(void*, uintptr_t, int32_t, struct_L_t*, uint32_t, struct_L_t*, uint32_t);
 typedef void (*vFXLpiibpiip_i_t)(void*, uintptr_t, void*, int32_t, int32_t, struct_piip_t*, int32_t);
@@ -1294,6 +1307,7 @@ typedef void (*vFuuufffff_t)(uint32_t, uint32_t, uint32_t, float, float, float,
 typedef void (*vFffffffff_t)(float, float, float, float, float, float, float, float);
 typedef void (*vFXiLpiiuu_t)(void*, int32_t, uintptr_t, void*, int32_t, int32_t, uint32_t, uint32_t);
 typedef void (*vFXLiiiLii_t)(void*, uintptr_t, int32_t, int32_t, int32_t, uintptr_t, int32_t, int32_t);
+typedef void (*vFXLLLiipi_t)(void*, uintptr_t, uintptr_t, uintptr_t, int32_t, int32_t, void*, int32_t);
 typedef void (*vFXLppiipi_t)(void*, uintptr_t, 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 (*iFEpLiLppp_t)(x64emu_t*, void*, uintptr_t, int32_t, uintptr_t, void*, void*, void*);
@@ -1352,6 +1366,7 @@ typedef void* (*pFEuiiiuuuu_t)(x64emu_t*, uint32_t, int32_t, int32_t, int32_t, u
 typedef void* (*pFEXLiiuuLi_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t);
 typedef int32_t (*iFXLbL_pppppp_t)(void*, uintptr_t, struct_L_t*, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFXLbL_bL_ppppp_t)(void*, uintptr_t, struct_L_t*, struct_L_t*, void*, void*, void*, void*, void*);
+typedef void (*vFXiLLrLiiuL_iipi_t)(void*, int32_t, uintptr_t, uintptr_t, struct_LiiuL_t*, int32_t, int32_t, void*, int32_t);
 typedef void* (*pFEXbpLiLLLii_uipbLipi_uu_t)(x64emu_t*, void*, struct_pLiLLLii_t*, uint32_t, int32_t, void*, struct_Lipi_t*, uint32_t, uint32_t);
 typedef void (*vFEXLpppippp_t)(x64emu_t*, void*, uintptr_t, void*, void*, void*, int32_t, void*, void*, void*);
 typedef void (*vFiiiiiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
@@ -1393,12 +1408,12 @@ typedef void (*vFuffffffffff_t)(uint32_t, float, float, float, float, float, flo
 typedef void (*vFUufffffffff_t)(uint64_t, uint32_t, float, float, float, float, float, float, float, float, float);
 typedef void (*vFpiiiiiiiiuu_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
 typedef void (*vFpipipiipiiu_t)(void*, int32_t, void*, int32_t, void*, int32_t, int32_t, void*, int32_t, int32_t, uint32_t);
-typedef void (*vFXiLLpiiiipi_t)(void*, int32_t, uintptr_t, uintptr_t, void*, int32_t, int32_t, int32_t, int32_t, void*, int32_t);
 typedef int32_t (*iFEXLppiiiiuu_t)(x64emu_t*, void*, uintptr_t, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
 typedef int32_t (*iFEXpLLiiLWpi_t)(x64emu_t*, void*, void*, uintptr_t, uintptr_t, int32_t, int32_t, uintptr_t, uint16_t, void*, int32_t);
 typedef int32_t (*iFuiiiiuuiiip_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFXLLpiiuuiiL_t)(void*, uintptr_t, uintptr_t, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, uintptr_t);
 typedef void* (*pFEXpuiipuuii_t)(x64emu_t*, void*, void*, uint32_t, int32_t, int32_t, void*, uint32_t, uint32_t, int32_t, int32_t);
+typedef void (*vFXiLLrLiiuL_iiiipi_t)(void*, int32_t, uintptr_t, uintptr_t, struct_LiiuL_t*, int32_t, int32_t, int32_t, int32_t, void*, int32_t);
 typedef int32_t (*iFXLibL_iiiibL_bL_bL__t)(void*, uintptr_t, int32_t, struct_L_t*, int32_t, int32_t, int32_t, int32_t, struct_L_t*, struct_L_t*, struct_L_t*);
 typedef void (*vFuiiiiiiiiuUC_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint64_t, uint8_t);
 typedef void (*vFuiiiiiiiuuip_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, void*);
@@ -1408,10 +1423,10 @@ typedef void (*vFuuiiiiiiiuup_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t,
 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 void (*vFXiLLpiiiipii_t)(void*, int32_t, uintptr_t, uintptr_t, void*, int32_t, int32_t, int32_t, int32_t, void*, int32_t, int32_t);
-typedef void (*vFXiLLpLiiiipi_t)(void*, int32_t, uintptr_t, uintptr_t, void*, uintptr_t, int32_t, int32_t, int32_t, int32_t, void*, int32_t);
 typedef int32_t (*iFEXLppiiiiuui_t)(x64emu_t*, void*, uintptr_t, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t);
 typedef int32_t (*iFXLpppppppppp_t)(void*, uintptr_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFEXLiiuuLipii_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t, void*, int32_t, int32_t);
+typedef void (*vFXiLLrLiiuL_Liiiipi_t)(void*, int32_t, uintptr_t, uintptr_t, struct_LiiuL_t*, uintptr_t, int32_t, int32_t, int32_t, int32_t, void*, int32_t);
 typedef int32_t (*iFXLLlliLBL_pBL_BL_Bp__t)(void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, uintptr_t, struct_L_t*, void*, struct_L_t*, struct_L_t*, struct_p_t*);
 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);
@@ -1422,6 +1437,7 @@ typedef int32_t (*iFddddpppddpppp_t)(double, double, double, double, void*, void
 typedef int32_t (*iFXippuuuiipppp_t)(void*, int32_t, void*, void*, uint32_t, uint32_t, uint32_t, int32_t, int32_t, void*, void*, void*, void*);
 typedef uint32_t (*uFippuuuulllipp_t)(int32_t, void*, void*, uint32_t, uint32_t, uint32_t, uint32_t, intptr_t, intptr_t, intptr_t, int32_t, void*, void*);
 typedef uintptr_t (*LFEXLiiuuuiupLp_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, int32_t, uint32_t, void*, uintptr_t, void*);
+typedef int32_t (*iFXLLlliiLBL_pBL_BL_Bp__t)(void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, int32_t, uintptr_t, struct_L_t*, void*, struct_L_t*, struct_L_t*, struct_p_t*);
 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 (*vFuiiiiiuiiiiilll_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, intptr_t, intptr_t, intptr_t);
@@ -1464,6 +1480,7 @@ void cFc_32(x64emu_t *emu, uintptr_t fcn) { cFc_t fn = (cFc_t)fcn; R_EAX = fn(fr
 void cFi_32(x64emu_t *emu, uintptr_t fcn) { cFi_t fn = (cFi_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4)); }
 void cFu_32(x64emu_t *emu, uintptr_t fcn) { cFu_t fn = (cFu_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4)); }
 void cFp_32(x64emu_t *emu, uintptr_t fcn) { cFp_t fn = (cFp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4)); }
+void wFp_32(x64emu_t *emu, uintptr_t fcn) { wFp_t fn = (wFp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4)); }
 void iFv_32(x64emu_t *emu, uintptr_t fcn) { iFv_t fn = (iFv_t)fcn; R_EAX = fn(); }
 void iFi_32(x64emu_t *emu, uintptr_t fcn) { iFi_t fn = (iFi_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4)); }
 void iFI_32(x64emu_t *emu, uintptr_t fcn) { iFI_t fn = (iFI_t)fcn; R_EAX = fn(from_ptri(int64_t, R_ESP + 4)); }
@@ -1626,6 +1643,7 @@ void CFuU_32(x64emu_t *emu, uintptr_t fcn) { CFuU_t fn = (CFuU_t)fcn; R_EAX = (u
 void CFpi_32(x64emu_t *emu, uintptr_t fcn) { CFpi_t fn = (CFpi_t)fcn; R_EAX = (unsigned char)fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); }
 void CFpp_32(x64emu_t *emu, uintptr_t fcn) { CFpp_t fn = (CFpp_t)fcn; R_EAX = (unsigned char)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8)); }
 void CFXL_32(x64emu_t *emu, uintptr_t fcn) { CFXL_t fn = (CFXL_t)fcn; R_EAX = (unsigned char)fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8))); }
+void WFpp_32(x64emu_t *emu, uintptr_t fcn) { WFpp_t fn = (WFpp_t)fcn; R_EAX = (unsigned short)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8)); }
 void uFEp_32(x64emu_t *emu, uintptr_t fcn) { uFEp_t fn = (uFEp_t)fcn; R_EAX = (uint32_t)fn(emu, from_ptriv(R_ESP + 4)); }
 void uFii_32(x64emu_t *emu, uintptr_t fcn) { uFii_t fn = (uFii_t)fcn; R_EAX = (uint32_t)fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); }
 void uFiS_32(x64emu_t *emu, uintptr_t fcn) { uFiS_t fn = (uFiS_t)fcn; R_EAX = (uint32_t)fn(from_ptri(int32_t, R_ESP + 4), io_convert32(from_ptriv(R_ESP + 8))); }
@@ -1701,6 +1719,7 @@ void iFHBp__32(x64emu_t *emu, uintptr_t fcn) { iFHBp__t fn = (iFHBp__t)fcn; stru
 void iFXbL__32(x64emu_t *emu, uintptr_t fcn) { iFXbL__t fn = (iFXbL__t)fcn; struct_L_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_L(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void fFpBp__32(x64emu_t *emu, uintptr_t fcn) { fFpBp__t fn = (fFpBp__t)fcn; struct_p_t arg_8={0}; float fl = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); fpu_do_push(emu); ST0val = fl; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void dFpBp__32(x64emu_t *emu, uintptr_t fcn) { dFpBp__t fn = (dFpBp__t)fcn; struct_p_t arg_8={0}; double db = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); fpu_do_push(emu); ST0val = db; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
+void LFpbL__32(x64emu_t *emu, uintptr_t fcn) { LFpbL__t fn = (LFpbL__t)fcn; struct_L_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_L(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void pFrl_p_32(x64emu_t *emu, uintptr_t fcn) { pFrl_p_t fn = (pFrl_p_t)fcn; struct_l_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_l(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8))); }
 void vFBll_l_32(x64emu_t *emu, uintptr_t fcn) { vFBll_l_t fn = (vFBll_l_t)fcn; struct_ll_t arg_4={0}; fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_long(from_ptri(long_t, R_ESP + 8))); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_ll(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void iFuBLL__32(x64emu_t *emu, uintptr_t fcn) { iFuBLL__t fn = (iFuBLL__t)fcn; struct_LL_t arg_8={0}; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
@@ -1715,6 +1734,7 @@ void iFbppi_i_32(x64emu_t *emu, uintptr_t fcn) { iFbppi_i_t fn = (iFbppi_i_t)fcn
 void iFXbiip__32(x64emu_t *emu, uintptr_t fcn) { iFXbiip__t fn = (iFXbiip__t)fcn; struct_iip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_iip(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFXbLipi__32(x64emu_t *emu, uintptr_t fcn) { iFXbLipi__t fn = (iFXbLipi__t)fcn; struct_Lipi_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_Lipi(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_Lipi(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFrLL_BLL__32(x64emu_t *emu, uintptr_t fcn) { iFrLL_BLL__t fn = (iFrLL_BLL__t)fcn; struct_LL_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_LL(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_LL_t arg_8={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
+void LFXrLiiuL__32(x64emu_t *emu, uintptr_t fcn) { LFXrLiiuL__t fn = (LFXrLiiuL__t)fcn; struct_LiiuL_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_LiiuL(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL)); }
 void vFbll_rllll__32(x64emu_t *emu, uintptr_t fcn) { vFbll_rllll__t fn = (vFbll_rllll__t)fcn; struct_ll_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_ll(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_llll_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_llll(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_ll(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void iFXbiiuuLip__32(x64emu_t *emu, uintptr_t fcn) { iFXbiiuuLip__t fn = (iFXbiiuuLip__t)fcn; struct_iiuuLip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_iiuuLip(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_iiuuLip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFpruuipWCCp__32(x64emu_t *emu, uintptr_t fcn) { iFpruuipWCCp__t fn = (iFpruuipWCCp__t)fcn; struct_uuipWCCp_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_uuipWCCp(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); }
@@ -1790,6 +1810,7 @@ void vFplp_32(x64emu_t *emu, uintptr_t fcn) { vFplp_t fn = (vFplp_t)fcn; fn(from
 void vFppi_32(x64emu_t *emu, uintptr_t fcn) { vFppi_t fn = (vFppi_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); }
 void vFppu_32(x64emu_t *emu, uintptr_t fcn) { vFppu_t fn = (vFppu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); }
 void vFppp_32(x64emu_t *emu, uintptr_t fcn) { vFppp_t fn = (vFppp_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12)); }
+void vFXLi_32(x64emu_t *emu, uintptr_t fcn) { vFXLi_t fn = (vFXLi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12)); }
 void vFXLL_32(x64emu_t *emu, uintptr_t fcn) { vFXLL_t fn = (vFXLL_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12))); }
 void vFXLp_32(x64emu_t *emu, uintptr_t fcn) { vFXLp_t fn = (vFXLp_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12)); }
 void vFXpi_32(x64emu_t *emu, uintptr_t fcn) { vFXpi_t fn = (vFXpi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); }
@@ -1872,6 +1893,7 @@ void IFpIi_32(x64emu_t *emu, uintptr_t fcn) { IFpIi_t fn = (IFpIi_t)fcn; ui64_t
 void CFipp_32(x64emu_t *emu, uintptr_t fcn) { CFipp_t fn = (CFipp_t)fcn; R_EAX = (unsigned char)fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void CFuUu_32(x64emu_t *emu, uintptr_t fcn) { CFuUu_t fn = (CFuUu_t)fcn; R_EAX = (unsigned char)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint64_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 16)); }
 void CFuff_32(x64emu_t *emu, uintptr_t fcn) { CFuff_t fn = (CFuff_t)fcn; R_EAX = (unsigned char)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12)); }
+void WFXip_32(x64emu_t *emu, uintptr_t fcn) { WFXip_t fn = (WFXip_t)fcn; R_EAX = (unsigned short)fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void uFEpu_32(x64emu_t *emu, uintptr_t fcn) { uFEpu_t fn = (uFEpu_t)fcn; R_EAX = (uint32_t)fn(emu, from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8)); }
 void uFEpL_32(x64emu_t *emu, uintptr_t fcn) { uFEpL_t fn = (uFEpL_t)fcn; R_EAX = (uint32_t)fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8))); }
 void uFilp_32(x64emu_t *emu, uintptr_t fcn) { uFilp_t fn = (uFilp_t)fcn; R_EAX = (uint32_t)fn(from_ptri(int32_t, R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_ptriv(R_ESP + 12)); }
@@ -1977,6 +1999,7 @@ void iFXbiip_i_32(x64emu_t *emu, uintptr_t fcn) { iFXbiip_i_t fn = (iFXbiip_i_t)
 void vFXLbpLiL__32(x64emu_t *emu, uintptr_t fcn) { vFXLbpLiL__t fn = (vFXLbpLiL__t)fcn; struct_pLiL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_pLiL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_pLiL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXLbpLiL__32(x64emu_t *emu, uintptr_t fcn) { iFXLbpLiL__t fn = (iFXLbpLiL__t)fcn; struct_pLiL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_pLiL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_pLiL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXLbLLii__32(x64emu_t *emu, uintptr_t fcn) { iFXLbLLii__t fn = (iFXLbLLii__t)fcn; struct_LLii_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LLii(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLii(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
+void pFXrLiiuL_p_32(x64emu_t *emu, uintptr_t fcn) { pFXrLiiuL_p_t fn = (pFXrLiiuL_p_t)fcn; struct_LiiuL_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_LiiuL(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptriv(R_ESP + 12))); }
 void iFXLbLWWWcc__32(x64emu_t *emu, uintptr_t fcn) { iFXLbLWWWcc__t fn = (iFXLbLWWWcc__t)fcn; struct_LWWWcc_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LWWWcc(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFirLLLL_BLLLL__32(x64emu_t *emu, uintptr_t fcn) { iFirLLLL_BLLLL__t fn = (iFirLLLL_BLLLL__t)fcn; struct_LLLL_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_LLLL(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_LLLL_t arg_12={0}; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLLL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void pFppriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { pFppriiiiiiiiilt__t fn = (pFppriiiiiiiiilt__t)fcn; struct_iiiiiiiiilt_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_iiiiiiiiilt(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL)); }
@@ -2188,8 +2211,8 @@ void pFpLiS_32(x64emu_t *emu, uintptr_t fcn) { pFpLiS_t fn = (pFpLiS_t)fcn; R_EA
 void pFppLL_32(x64emu_t *emu, uintptr_t fcn) { pFppLL_t fn = (pFppLL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)))); }
 void pFpppp_32(x64emu_t *emu, uintptr_t fcn) { pFpppp_t fn = (pFpppp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); }
 void pFXiii_32(x64emu_t *emu, uintptr_t fcn) { pFXiii_t fn = (pFXiii_t)fcn; R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16))); }
+void pFXiip_32(x64emu_t *emu, uintptr_t fcn) { pFXiip_t fn = (pFXiip_t)fcn; R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16))); }
 void pFXCip_32(x64emu_t *emu, uintptr_t fcn) { pFXCip_t fn = (pFXCip_t)fcn; R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(uint8_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16))); }
-void pFXLpi_32(x64emu_t *emu, uintptr_t fcn) { pFXLpi_t fn = (pFXLpi_t)fcn; R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16))); }
 void pFXLpp_32(x64emu_t *emu, uintptr_t fcn) { pFXLpp_t fn = (pFXLpp_t)fcn; R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); }
 void pFXppp_32(x64emu_t *emu, uintptr_t fcn) { pFXppp_t fn = (pFXppp_t)fcn; R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); }
 void vFbp_ppp_32(x64emu_t *emu, uintptr_t fcn) { vFbp_ppp_t fn = (vFbp_ppp_t)fcn; struct_p_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
@@ -2218,6 +2241,7 @@ void iFXLubiiiiiLi__32(x64emu_t *emu, uintptr_t fcn) { iFXLubiiiiiLi__t fn = (iF
 void vFXLbLLLLLLLLLL_L_32(x64emu_t *emu, uintptr_t fcn) { vFXLbLLLLLLLLLL_L_t fn = (vFXLbLLLLLLLLLL_L_t)fcn; struct_LLLLLLLLLL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LLLLLLLLLL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 16))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLLLLLLLLL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXLbLLLLLLLLLL_L_32(x64emu_t *emu, uintptr_t fcn) { iFXLbLLLLLLLLLL_L_t fn = (iFXLbLLLLLLLLLL_L_t)fcn; struct_LLLLLLLLLL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LLLLLLLLLL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 16))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLLLLLLLLL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void LFpLpriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { LFpLpriiiiiiiiilt__t fn = (LFpLpriiiiiiiiilt__t)fcn; struct_iiiiiiiiilt_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_iiiiiiiiilt(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL)); }
+void iFXipBWWWWWWWWWuip__32(x64emu_t *emu, uintptr_t fcn) { iFXipBWWWWWWWWWuip__t fn = (iFXipBWWWWWWWWWuip__t)fcn; struct_WWWWWWWWWuip_t arg_16={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_WWWWWWWWWuip(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
 void iFXLbLWWWcc_bLWWWcc__32(x64emu_t *emu, uintptr_t fcn) { iFXLbLWWWcc_bLWWWcc__t fn = (iFXLbLWWWcc_bLWWWcc__t)fcn; struct_LWWWcc_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LWWWcc(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_LWWWcc_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_LWWWcc(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
 void iFXLLbLLLLiiiLLilliLL__32(x64emu_t *emu, uintptr_t fcn) { iFXLLbLLLLiiiLLilliLL__t fn = (iFXLLbLLLLiiiLLilliLL__t)fcn; struct_LLLLiiiLLilliLL_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_LLLLiiiLLilliLL(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LLLLiiiLLilliLL(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
 void iFpruuipWCCp_buuipWCCp_i_32(x64emu_t *emu, uintptr_t fcn) { iFpruuipWCCp_buuipWCCp_i_t fn = (iFpruuipWCCp_buuipWCCp_i_t)fcn; struct_uuipWCCp_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_uuipWCCp(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_uuipWCCp_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_uuipWCCp(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptri(int32_t, R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_uuipWCCp(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
@@ -2373,7 +2397,6 @@ void LFEppLL_32(x64emu_t *emu, uintptr_t fcn) { LFEppLL_t fn = (LFEppLL_t)fcn; R
 void LFpLppa_32(x64emu_t *emu, uintptr_t fcn) { LFpLppa_t fn = (LFpLppa_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_locale(from_ptri(ptr_t, R_ESP + 20)))); }
 void LFXLuuu_32(x64emu_t *emu, uintptr_t fcn) { LFXLuuu_t fn = (LFXLuuu_t)fcn; R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20))); }
 void LFXLpuu_32(x64emu_t *emu, uintptr_t fcn) { LFXLpuu_t fn = (LFXLpuu_t)fcn; R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20))); }
-void LFXLpLp_32(x64emu_t *emu, uintptr_t fcn) { LFXLpLp_t fn = (LFXLpLp_t)fcn; R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20))); }
 void LFXpppi_32(x64emu_t *emu, uintptr_t fcn) { LFXpppi_t fn = (LFXpppi_t)fcn; R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20))); }
 void pFEppip_32(x64emu_t *emu, uintptr_t fcn) { pFEppip_t fn = (pFEppip_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16))); }
 void pFEXipp_32(x64emu_t *emu, uintptr_t fcn) { pFEXipp_t fn = (pFEXipp_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); }
@@ -2402,11 +2425,13 @@ void iFiiuBp_Bp__32(x64emu_t *emu, uintptr_t fcn) { iFiiuBp_Bp__t fn = (iFiiuBp_
 void vFbp_ppibup__32(x64emu_t *emu, uintptr_t fcn) { vFbp_ppibup__t fn = (vFbp_ppibup__t)fcn; struct_p_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_p(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_up_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_up(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_up(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void iFEXbpLiL_pp_32(x64emu_t *emu, uintptr_t fcn) { iFEXbpLiL_pp_t fn = (iFEXbpLiL_pp_t)fcn; struct_pLiL_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_pLiL(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_pLiL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFpppbp_bup__32(x64emu_t *emu, uintptr_t fcn) { iFpppbp_bup__t fn = (iFpppbp_bup__t)fcn; struct_p_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_p(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); struct_up_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_up(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_up(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
+void LFXLrLiiuL_Lp_32(x64emu_t *emu, uintptr_t fcn) { LFXLrLiiuL_Lp_t fn = (LFXLrLiiuL_Lp_t)fcn; struct_LiiuL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LiiuL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20))); }
+void pFEXLrLiiuL_i_32(x64emu_t *emu, uintptr_t fcn) { pFEXLrLiiuL_i_t fn = (pFEXLrLiiuL_i_t)fcn; struct_LiiuL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LiiuL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptri(int32_t, R_ESP + 16))); }
 void iFXbp_iubpLiL__32(x64emu_t *emu, uintptr_t fcn) { iFXbp_iubpLiL__t fn = (iFXbp_iubpLiL__t)fcn; struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_pLiL_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_pLiL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_pLiL(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void iFXLiubiiiiiLi__32(x64emu_t *emu, uintptr_t fcn) { iFXLiubiiiiiLi__t fn = (iFXLiubiiiiiLi__t)fcn; struct_iiiiiLi_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_iiiiiLi(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_iiiiiLi(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void LFLbp_bL_bp_bL__32(x64emu_t *emu, uintptr_t fcn) { LFLbp_bL_bp_bL__t fn = (LFLbp_bL_bp_bL__t)fcn; struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_L_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_p_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_p(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); struct_L_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_L(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = to_ulong(fn(from_ulong(from_ptri(ulong_t, R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void vFXLbLLLLLLLLLL_iL_32(x64emu_t *emu, uintptr_t fcn) { vFXLbLLLLLLLLLL_iL_t fn = (vFXLbLLLLLLLLLL_iL_t)fcn; struct_LLLLLLLLLL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LLLLLLLLLL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptri(int32_t, R_ESP + 16), from_ulong(from_ptri(ulong_t, R_ESP + 20))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLLLLLLLLL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
-void iFXiiibpLiiiLLLii__32(x64emu_t *emu, uintptr_t fcn) { iFXiiibpLiiiLLLii__t fn = (iFXiiibpLiiiLLLii__t)fcn; struct_pLiiiLLLii_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_pLiiiLLLii(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_pLiiiLLLii(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
+void iFXiiiBpLiiiLLLii__32(x64emu_t *emu, uintptr_t fcn) { iFXiiiBpLiiiLLLii__t fn = (iFXiiiBpLiiiLLLii__t)fcn; struct_pLiiiLLLii_t arg_20={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_pLiiiLLLii(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void LFpLpriiiiiiiiilt_a_32(x64emu_t *emu, uintptr_t fcn) { LFpLpriiiiiiiiilt_a_t fn = (LFpLpriiiiiiiiilt_a_t)fcn; struct_iiiiiiiiilt_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_iiiiiiiiilt(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_locale(from_ptri(ptr_t, R_ESP + 20)))); }
 void iFXLpbLWWWcc_bLWWWcc__32(x64emu_t *emu, uintptr_t fcn) { iFXLpbLWWWcc_bLWWWcc__t fn = (iFXLpbLWWWcc_bLWWWcc__t)fcn; struct_LWWWcc_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_LWWWcc(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); struct_LWWWcc_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_LWWWcc(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void iFXLpBLWWWcc_BLWWWcc__32(x64emu_t *emu, uintptr_t fcn) { iFXLpBLWWWcc_BLWWWcc__t fn = (iFXLpBLWWWcc_BLWWWcc__t)fcn; struct_LWWWcc_t arg_16={0}; struct_LWWWcc_t arg_20={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
@@ -2480,6 +2505,7 @@ void vFXiLppi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLppi_t fn = (vFXiLppi_t)fcn
 void vFXLiiii_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiii_t fn = (vFXLiiii_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
 void vFXLiiiL_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiiL_t fn = (vFXLiiiL_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24))); }
 void vFXLiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXLiipi_t fn = (vFXLiipi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
+void vFXLpppi_32(x64emu_t *emu, uintptr_t fcn) { vFXLpppi_t fn = (vFXLpppi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
 void iFEiippi_32(x64emu_t *emu, uintptr_t fcn) { iFEiippi_t fn = (iFEiippi_t)fcn; R_EAX = fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20)); }
 void iFEuppLp_32(x64emu_t *emu, uintptr_t fcn) { iFEuppLp_t fn = (iFEuppLp_t)fcn; R_EAX = fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20)); }
 void iFEpiuuu_32(x64emu_t *emu, uintptr_t fcn) { iFEpiuuu_t fn = (iFEpiuuu_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20)); }
@@ -2511,6 +2537,7 @@ void iFXLppii_32(x64emu_t *emu, uintptr_t fcn) { iFXLppii_t fn = (iFXLppii_t)fcn
 void iFXLpppp_32(x64emu_t *emu, uintptr_t fcn) { iFXLpppp_t fn = (iFXLpppp_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
 void iFXpIppp_32(x64emu_t *emu, uintptr_t fcn) { iFXpIppp_t fn = (iFXpIppp_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int64_t, R_ESP + 12), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28)); }
 void iFXpuiii_32(x64emu_t *emu, uintptr_t fcn) { iFXpuiii_t fn = (iFXpuiii_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
+void iFXpLiWL_32(x64emu_t *emu, uintptr_t fcn) { iFXpLiWL_t fn = (iFXpLiWL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16), from_ptri(uint16_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24))); }
 void iFXpLLiL_32(x64emu_t *emu, uintptr_t fcn) { iFXpLLiL_t fn = (iFXpLLiL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24))); }
 void iFXppppi_32(x64emu_t *emu, uintptr_t fcn) { iFXppppi_t fn = (iFXppppi_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
 void iFXppppp_32(x64emu_t *emu, uintptr_t fcn) { iFXppppp_t fn = (iFXppppp_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
@@ -2609,12 +2636,14 @@ void iFXLpiiuu_32(x64emu_t *emu, uintptr_t fcn) { iFXLpiiuu_t fn = (iFXLpiiuu_t)
 void iFXLpiipi_32(x64emu_t *emu, uintptr_t fcn) { iFXLpiipi_t fn = (iFXLpiipi_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptriv(R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); }
 void iFXLppiii_32(x64emu_t *emu, uintptr_t fcn) { iFXLppiii_t fn = (iFXLppiii_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); }
 void iFXpiipii_32(x64emu_t *emu, uintptr_t fcn) { iFXpiipii_t fn = (iFXpiipii_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); }
+void iFXpLiWwL_32(x64emu_t *emu, uintptr_t fcn) { iFXpLiWwL_t fn = (iFXpLiWwL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16), from_ptri(uint16_t, R_ESP + 20), from_ptri(int16_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28))); }
 void iFXpLuuii_32(x64emu_t *emu, uintptr_t fcn) { iFXpLuuii_t fn = (iFXpLuuii_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); }
 void uFuippppp_32(x64emu_t *emu, uintptr_t fcn) { uFuippppp_t fn = (uFuippppp_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28)); }
 void pFEpiiiiu_32(x64emu_t *emu, uintptr_t fcn) { pFEpiiiiu_t fn = (pFEpiiiiu_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24))); }
 void pFEpLiiii_32(x64emu_t *emu, uintptr_t fcn) { pFEpLiiii_t fn = (pFEpLiiii_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24))); }
 void pFEpLiiiI_32(x64emu_t *emu, uintptr_t fcn) { pFEpLiiiI_t fn = (pFEpLiiiI_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int64_t, R_ESP + 24))); }
 void pFEpLiiil_32(x64emu_t *emu, uintptr_t fcn) { pFEpLiiil_t fn = (pFEpLiiil_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_long(from_ptri(long_t, R_ESP + 24)))); }
+void vFXLLiiibl__32(x64emu_t *emu, uintptr_t fcn) { vFXLLiiibl__t fn = (vFXLLiiibl__t)fcn; struct_l_t arg_28={0}; if (*(ptr_t*)(from_ptr((R_ESP + 28)))) from_struct_l(&arg_28, *(ptr_t*)(from_ptr((R_ESP + 28)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), *(ptr_t*)(from_ptr((R_ESP + 28))) ? &arg_28 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 28)))) to_struct_l(*(ptr_t*)(from_ptr((R_ESP + 28))), &arg_28); }
 void iFEpppibL_p_32(x64emu_t *emu, uintptr_t fcn) { iFEpppibL_p_t fn = (iFEpppibL_p_t)fcn; struct_L_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_L(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL, from_ptriv(R_ESP + 24)); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void iFXLibL_ubL_u_32(x64emu_t *emu, uintptr_t fcn) { iFXLibL_ubL_u_t fn = (iFXLibL_ubL_u_t)fcn; struct_L_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_L(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); struct_L_t arg_24={0}; if (*(ptr_t*)(from_ptr((R_ESP + 24)))) from_struct_L(&arg_24, *(ptr_t*)(from_ptr((R_ESP + 24)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_ptri(uint32_t, R_ESP + 20), *(ptr_t*)(from_ptr((R_ESP + 24))) ? &arg_24 : NULL, from_ptri(uint32_t, R_ESP + 28)); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 24)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); }
 void vFXLpiibpiip_i_32(x64emu_t *emu, uintptr_t fcn) { vFXLpiibpiip_i_t fn = (vFXLpiibpiip_i_t)fcn; struct_piip_t arg_24={0}; if (*(ptr_t*)(from_ptr((R_ESP + 24)))) from_struct_piip(&arg_24, *(ptr_t*)(from_ptr((R_ESP + 24)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), *(ptr_t*)(from_ptr((R_ESP + 24))) ? &arg_24 : NULL, from_ptri(int32_t, R_ESP + 28)); if (*(ptr_t*)(from_ptr((R_ESP + 24)))) to_struct_piip(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); }
@@ -2651,6 +2680,7 @@ void vFuuufffff_32(x64emu_t *emu, uintptr_t fcn) { vFuuufffff_t fn = (vFuuufffff
 void vFffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFffffffff_t fn = (vFffffffff_t)fcn; fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24), from_ptri(float, R_ESP + 28), from_ptri(float, R_ESP + 32)); }
 void vFXiLpiiuu_32(x64emu_t *emu, uintptr_t fcn) { vFXiLpiiuu_t fn = (vFXiLpiiuu_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32)); }
 void vFXLiiiLii_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiiLii_t fn = (vFXLiiiLii_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24)), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32)); }
+void vFXLLLiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXLLLiipi_t fn = (vFXLLLiipi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptriv(R_ESP + 28), from_ptri(int32_t, R_ESP + 32)); }
 void vFXLppiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXLppiipi_t fn = (vFXLppiipi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptriv(R_ESP + 28), from_ptri(int32_t, R_ESP + 32)); }
 void iFEpippppp_32(x64emu_t *emu, uintptr_t fcn) { iFEpippppp_t fn = (iFEpippppp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28)); }
 void iFEpLiLppp_32(x64emu_t *emu, uintptr_t fcn) { iFEpLiLppp_t fn = (iFEpLiLppp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28)); }
@@ -2709,6 +2739,7 @@ void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fcn) { pFEuiiiuuuu_t fn = (pFEuiiiu
 void pFEXLiiuuLi_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLi_t fn = (pFEXLiiuuLi_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32))); }
 void iFXLbL_pppppp_32(x64emu_t *emu, uintptr_t fcn) { iFXLbL_pppppp_t fn = (iFXLbL_pppppp_t)fcn; struct_L_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXLbL_bL_ppppp_32(x64emu_t *emu, uintptr_t fcn) { iFXLbL_bL_ppppp_t fn = (iFXLbL_bL_ppppp_t)fcn; struct_L_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_L_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_L(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
+void vFXiLLrLiiuL_iipi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLrLiiuL_iipi_t fn = (vFXiLLrLiiuL_iipi_t)fcn; struct_LiiuL_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_LiiuL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL, from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptriv(R_ESP + 32), from_ptri(int32_t, R_ESP + 36)); }
 void pFEXbpLiLLLii_uipbLipi_uu_32(x64emu_t *emu, uintptr_t fcn) { pFEXbpLiLLLii_uipbLipi_uu_t fn = (pFEXbpLiLLLii_uipbLipi_uu_t)fcn; struct_pLiLLLii_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_pLiLLLii(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_Lipi_t arg_24={0}; if (*(ptr_t*)(from_ptr((R_ESP + 24)))) from_struct_Lipi(&arg_24, *(ptr_t*)(from_ptr((R_ESP + 24)))); R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), *(ptr_t*)(from_ptr((R_ESP + 24))) ? &arg_24 : NULL, from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_pLiLLLii(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 24)))) to_struct_Lipi(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); }
 void vFEXLpppippp_32(x64emu_t *emu, uintptr_t fcn) { vFEXLpppippp_t fn = (vFEXLpppippp_t)fcn; fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36)); }
 void vFiiiiiiiiii_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiii_t fn = (vFiiiiiiiiii_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40)); }
@@ -2750,12 +2781,12 @@ void vFuffffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFuffffffffff_t fn = (vFuf
 void vFUufffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFUufffffffff_t fn = (vFUufffffffff_t)fcn; fn(from_ptri(uint64_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24), from_ptri(float, R_ESP + 28), from_ptri(float, R_ESP + 32), from_ptri(float, R_ESP + 36), from_ptri(float, R_ESP + 40), from_ptri(float, R_ESP + 44), from_ptri(float, R_ESP + 48)); }
 void vFpiiiiiiiiuu_32(x64emu_t *emu, uintptr_t fcn) { vFpiiiiiiiiuu_t fn = (vFpiiiiiiiiuu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44)); }
 void vFpipipiipiiu_32(x64emu_t *emu, uintptr_t fcn) { vFpipipiipiiu_t fn = (vFpipipiipiiu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptriv(R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44)); }
-void vFXiLLpiiiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLpiiiipi_t fn = (vFXiLLpiiiipi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptriv(R_ESP + 40), from_ptri(int32_t, R_ESP + 44)); }
 void iFEXLppiiiiuu_32(x64emu_t *emu, uintptr_t fcn) { iFEXLppiiiiuu_t fn = (iFEXLppiiiiuu_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40)); }
 void iFEXpLLiiLWpi_32(x64emu_t *emu, uintptr_t fcn) { iFEXpLLiiLWpi_t fn = (iFEXpLLiiLWpi_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(uint16_t, R_ESP + 32), from_ptriv(R_ESP + 36), from_ptri(int32_t, R_ESP + 40)); }
 void iFuiiiiuuiiip_32(x64emu_t *emu, uintptr_t fcn) { iFuiiiiuuiiip_t fn = (iFuiiiiuuiiip_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptriv(R_ESP + 44)); }
 void iFXLLpiiuuiiL_32(x64emu_t *emu, uintptr_t fcn) { iFXLLpiiuuiiL_t fn = (iFXLLpiiuuiiL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ulong(from_ptri(ulong_t, R_ESP + 44))); }
 void pFEXpuiipuuii_32(x64emu_t *emu, uintptr_t fcn) { pFEXpuiipuuii_t fn = (pFEXpuiipuuii_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptriv(R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40))); }
+void vFXiLLrLiiuL_iiiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLrLiiuL_iiiipi_t fn = (vFXiLLrLiiuL_iiiipi_t)fcn; struct_LiiuL_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_LiiuL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL, from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptriv(R_ESP + 40), from_ptri(int32_t, R_ESP + 44)); }
 void iFXLibL_iiiibL_bL_bL__32(x64emu_t *emu, uintptr_t fcn) { iFXLibL_iiiibL_bL_bL__t fn = (iFXLibL_iiiibL_bL_bL__t)fcn; struct_L_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_L(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); struct_L_t arg_36={0}; if (*(ptr_t*)(from_ptr((R_ESP + 36)))) from_struct_L(&arg_36, *(ptr_t*)(from_ptr((R_ESP + 36)))); struct_L_t arg_40={0}; if (*(ptr_t*)(from_ptr((R_ESP + 40)))) from_struct_L(&arg_40, *(ptr_t*)(from_ptr((R_ESP + 40)))); struct_L_t arg_44={0}; if (*(ptr_t*)(from_ptr((R_ESP + 44)))) from_struct_L(&arg_44, *(ptr_t*)(from_ptr((R_ESP + 44)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), *(ptr_t*)(from_ptr((R_ESP + 36))) ? &arg_36 : NULL, *(ptr_t*)(from_ptr((R_ESP + 40))) ? &arg_40 : NULL, *(ptr_t*)(from_ptr((R_ESP + 44))) ? &arg_44 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 36)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 36))), &arg_36); if (*(ptr_t*)(from_ptr((R_ESP + 40)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 40))), &arg_40); if (*(ptr_t*)(from_ptr((R_ESP + 44)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 44))), &arg_44); }
 void vFuiiiiiiiiuUC_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiuUC_t fn = (vFuiiiiiiiiuUC_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint64_t, R_ESP + 44), from_ptri(uint8_t, R_ESP + 52)); }
 void vFuiiiiiiiuuip_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiuuip_t fn = (vFuiiiiiiiuuip_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44), from_ptriv(R_ESP + 48)); }
@@ -2765,10 +2796,10 @@ void vFuuiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiiiiuup_t fn = (vF
 void vFuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuu_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48)); }
 void vFffffffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFffffffffffff_t fn = (vFffffffffffff_t)fcn; fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24), from_ptri(float, R_ESP + 28), from_ptri(float, R_ESP + 32), from_ptri(float, R_ESP + 36), from_ptri(float, R_ESP + 40), from_ptri(float, R_ESP + 44), from_ptri(float, R_ESP + 48)); }
 void vFXiLLpiiiipii_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLpiiiipii_t fn = (vFXiLLpiiiipii_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptriv(R_ESP + 40), from_ptri(int32_t, R_ESP + 44), from_ptri(int32_t, R_ESP + 48)); }
-void vFXiLLpLiiiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLpLiiiipi_t fn = (vFXiLLpLiiiipi_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24)), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptriv(R_ESP + 44), from_ptri(int32_t, R_ESP + 48)); }
 void iFEXLppiiiiuui_32(x64emu_t *emu, uintptr_t fcn) { iFEXLppiiiiuui_t fn = (iFEXLppiiiiuui_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44)); }
 void iFXLpppppppppp_32(x64emu_t *emu, uintptr_t fcn) { iFXLpppppppppp_t fn = (iFXLpppppppppp_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36), from_ptriv(R_ESP + 40), from_ptriv(R_ESP + 44), from_ptriv(R_ESP + 48)); }
 void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLipii_t fn = (pFEXLiiuuLipii_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32), from_ptriv(R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44))); }
+void vFXiLLrLiiuL_Liiiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLrLiiuL_Liiiipi_t fn = (vFXiLLrLiiuL_Liiiipi_t)fcn; struct_LiiuL_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_LiiuL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 24)), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptriv(R_ESP + 44), from_ptri(int32_t, R_ESP + 48)); }
 void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fcn) { iFXLLlliLBL_pBL_BL_Bp__t fn = (iFXLLlliLBL_pBL_BL_Bp__t)fcn; struct_L_t arg_32={0}; struct_L_t arg_40={0}; struct_L_t arg_44={0}; struct_p_t arg_48={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_long(from_ptri(long_t, R_ESP + 16)), from_long(from_ptri(long_t, R_ESP + 20)), from_ptri(int32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), *(ptr_t*)(from_ptr((R_ESP + 32))) ? &arg_32 : NULL, from_ptriv(R_ESP + 36), *(ptr_t*)(from_ptr((R_ESP + 40))) ? &arg_40 : NULL, *(ptr_t*)(from_ptr((R_ESP + 44))) ? &arg_44 : NULL, *(ptr_t*)(from_ptr((R_ESP + 48))) ? &arg_48 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 32)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 32))), &arg_32); if (*(ptr_t*)(from_ptr((R_ESP + 40)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 40))), &arg_40); if (*(ptr_t*)(from_ptr((R_ESP + 44)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 44))), &arg_44); if (*(ptr_t*)(from_ptr((R_ESP + 48)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 48))), &arg_48); }
 void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiiuup_t fn = (vFuiiiiiiiiiuup_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptriv(R_ESP + 52)); }
 void vFuuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuuu_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptri(uint32_t, R_ESP + 52)); }
@@ -2779,6 +2810,7 @@ void iFddddpppddpppp_32(x64emu_t *emu, uintptr_t fcn) { iFddddpppddpppp_t fn = (
 void iFXippuuuiipppp_32(x64emu_t *emu, uintptr_t fcn) { iFXippuuuiipppp_t fn = (iFXippuuuiipppp_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptriv(R_ESP + 40), from_ptriv(R_ESP + 44), from_ptriv(R_ESP + 48), from_ptriv(R_ESP + 52)); }
 void uFippuuuulllipp_32(x64emu_t *emu, uintptr_t fcn) { uFippuuuulllipp_t fn = (uFippuuuulllipp_t)fcn; R_EAX = (uint32_t)fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_long(from_ptri(long_t, R_ESP + 32)), from_long(from_ptri(long_t, R_ESP + 36)), from_long(from_ptri(long_t, R_ESP + 40)), from_ptri(int32_t, R_ESP + 44), from_ptriv(R_ESP + 48), from_ptriv(R_ESP + 52)); }
 void LFEXLiiuuuiupLp_32(x64emu_t *emu, uintptr_t fcn) { LFEXLiiuuuiupLp_t fn = (LFEXLiiuuuiupLp_t)fcn; R_EAX = to_ulong(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptriv(R_ESP + 40), from_ulong(from_ptri(ulong_t, R_ESP + 44)), from_ptriv(R_ESP + 48))); }
+void iFXLLlliiLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fcn) { iFXLLlliiLBL_pBL_BL_Bp__t fn = (iFXLLlliiLBL_pBL_BL_Bp__t)fcn; struct_L_t arg_36={0}; struct_L_t arg_44={0}; struct_L_t arg_48={0}; struct_p_t arg_52={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_long(from_ptri(long_t, R_ESP + 16)), from_long(from_ptri(long_t, R_ESP + 20)), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ulong(from_ptri(ulong_t, R_ESP + 32)), *(ptr_t*)(from_ptr((R_ESP + 36))) ? &arg_36 : NULL, from_ptriv(R_ESP + 40), *(ptr_t*)(from_ptr((R_ESP + 44))) ? &arg_44 : NULL, *(ptr_t*)(from_ptr((R_ESP + 48))) ? &arg_48 : NULL, *(ptr_t*)(from_ptr((R_ESP + 52))) ? &arg_52 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 36)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 36))), &arg_36); if (*(ptr_t*)(from_ptr((R_ESP + 44)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 44))), &arg_44); if (*(ptr_t*)(from_ptr((R_ESP + 48)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 48))), &arg_48); if (*(ptr_t*)(from_ptr((R_ESP + 52)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 52))), &arg_52); }
 void vFuffiiffiiffiip_32(x64emu_t *emu, uintptr_t fcn) { vFuffiiffiiffiip_t fn = (vFuffiiffiiffiip_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(float, R_ESP + 24), from_ptri(float, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(float, R_ESP + 40), from_ptri(float, R_ESP + 44), from_ptri(int32_t, R_ESP + 48), from_ptri(int32_t, R_ESP + 52), from_ptriv(R_ESP + 56)); }
 void vFuddiiddiiddiip_32(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiiddiip_t fn = (vFuddiiddiiddiip_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(double, R_ESP + 32), from_ptri(double, R_ESP + 40), from_ptri(int32_t, R_ESP + 48), from_ptri(int32_t, R_ESP + 52), from_ptri(double, R_ESP + 56), from_ptri(double, R_ESP + 64), from_ptri(int32_t, R_ESP + 72), from_ptri(int32_t, R_ESP + 76), from_ptriv(R_ESP + 80)); }
 void vFuiiiiiuiiiiilll_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiuiiiiilll_t fn = (vFuiiiiiuiiiiilll_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44), from_ptri(int32_t, R_ESP + 48), from_long(from_ptri(long_t, R_ESP + 52)), from_long(from_ptri(long_t, R_ESP + 56)), from_long(from_ptri(long_t, R_ESP + 60))); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index 499f4825..a95e2d6b 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -58,6 +58,7 @@ void cFc_32(x64emu_t *emu, uintptr_t fnc);
 void cFi_32(x64emu_t *emu, uintptr_t fnc);
 void cFu_32(x64emu_t *emu, uintptr_t fnc);
 void cFp_32(x64emu_t *emu, uintptr_t fnc);
+void wFp_32(x64emu_t *emu, uintptr_t fnc);
 void iFv_32(x64emu_t *emu, uintptr_t fnc);
 void iFi_32(x64emu_t *emu, uintptr_t fnc);
 void iFI_32(x64emu_t *emu, uintptr_t fnc);
@@ -220,6 +221,7 @@ void CFuU_32(x64emu_t *emu, uintptr_t fnc);
 void CFpi_32(x64emu_t *emu, uintptr_t fnc);
 void CFpp_32(x64emu_t *emu, uintptr_t fnc);
 void CFXL_32(x64emu_t *emu, uintptr_t fnc);
+void WFpp_32(x64emu_t *emu, uintptr_t fnc);
 void uFEp_32(x64emu_t *emu, uintptr_t fnc);
 void uFii_32(x64emu_t *emu, uintptr_t fnc);
 void uFiS_32(x64emu_t *emu, uintptr_t fnc);
@@ -295,6 +297,7 @@ void iFHBp__32(x64emu_t *emu, uintptr_t fnc);
 void iFXbL__32(x64emu_t *emu, uintptr_t fnc);
 void fFpBp__32(x64emu_t *emu, uintptr_t fnc);
 void dFpBp__32(x64emu_t *emu, uintptr_t fnc);
+void LFpbL__32(x64emu_t *emu, uintptr_t fnc);
 void pFrl_p_32(x64emu_t *emu, uintptr_t fnc);
 void vFBll_l_32(x64emu_t *emu, uintptr_t fnc);
 void iFuBLL__32(x64emu_t *emu, uintptr_t fnc);
@@ -309,6 +312,7 @@ void iFbppi_i_32(x64emu_t *emu, uintptr_t fnc);
 void iFXbiip__32(x64emu_t *emu, uintptr_t fnc);
 void iFXbLipi__32(x64emu_t *emu, uintptr_t fnc);
 void iFrLL_BLL__32(x64emu_t *emu, uintptr_t fnc);
+void LFXrLiiuL__32(x64emu_t *emu, uintptr_t fnc);
 void vFbll_rllll__32(x64emu_t *emu, uintptr_t fnc);
 void iFXbiiuuLip__32(x64emu_t *emu, uintptr_t fnc);
 void iFpruuipWCCp__32(x64emu_t *emu, uintptr_t fnc);
@@ -384,6 +388,7 @@ void vFplp_32(x64emu_t *emu, uintptr_t fnc);
 void vFppi_32(x64emu_t *emu, uintptr_t fnc);
 void vFppu_32(x64emu_t *emu, uintptr_t fnc);
 void vFppp_32(x64emu_t *emu, uintptr_t fnc);
+void vFXLi_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLL_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLp_32(x64emu_t *emu, uintptr_t fnc);
 void vFXpi_32(x64emu_t *emu, uintptr_t fnc);
@@ -466,6 +471,7 @@ void IFpIi_32(x64emu_t *emu, uintptr_t fnc);
 void CFipp_32(x64emu_t *emu, uintptr_t fnc);
 void CFuUu_32(x64emu_t *emu, uintptr_t fnc);
 void CFuff_32(x64emu_t *emu, uintptr_t fnc);
+void WFXip_32(x64emu_t *emu, uintptr_t fnc);
 void uFEpu_32(x64emu_t *emu, uintptr_t fnc);
 void uFEpL_32(x64emu_t *emu, uintptr_t fnc);
 void uFilp_32(x64emu_t *emu, uintptr_t fnc);
@@ -571,6 +577,7 @@ void iFXbiip_i_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLbpLiL__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbpLiL__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbLLii__32(x64emu_t *emu, uintptr_t fnc);
+void pFXrLiiuL_p_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbLWWWcc__32(x64emu_t *emu, uintptr_t fnc);
 void iFirLLLL_BLLLL__32(x64emu_t *emu, uintptr_t fnc);
 void pFppriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc);
@@ -782,8 +789,8 @@ void pFpLiS_32(x64emu_t *emu, uintptr_t fnc);
 void pFppLL_32(x64emu_t *emu, uintptr_t fnc);
 void pFpppp_32(x64emu_t *emu, uintptr_t fnc);
 void pFXiii_32(x64emu_t *emu, uintptr_t fnc);
+void pFXiip_32(x64emu_t *emu, uintptr_t fnc);
 void pFXCip_32(x64emu_t *emu, uintptr_t fnc);
-void pFXLpi_32(x64emu_t *emu, uintptr_t fnc);
 void pFXLpp_32(x64emu_t *emu, uintptr_t fnc);
 void pFXppp_32(x64emu_t *emu, uintptr_t fnc);
 void vFbp_ppp_32(x64emu_t *emu, uintptr_t fnc);
@@ -812,6 +819,7 @@ void iFXLubiiiiiLi__32(x64emu_t *emu, uintptr_t fnc);
 void vFXLbLLLLLLLLLL_L_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbLLLLLLLLLL_L_32(x64emu_t *emu, uintptr_t fnc);
 void LFpLpriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc);
+void iFXipBWWWWWWWWWuip__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbLWWWcc_bLWWWcc__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLLbLLLLiiiLLilliLL__32(x64emu_t *emu, uintptr_t fnc);
 void iFpruuipWCCp_buuipWCCp_i_32(x64emu_t *emu, uintptr_t fnc);
@@ -967,7 +975,6 @@ void LFEppLL_32(x64emu_t *emu, uintptr_t fnc);
 void LFpLppa_32(x64emu_t *emu, uintptr_t fnc);
 void LFXLuuu_32(x64emu_t *emu, uintptr_t fnc);
 void LFXLpuu_32(x64emu_t *emu, uintptr_t fnc);
-void LFXLpLp_32(x64emu_t *emu, uintptr_t fnc);
 void LFXpppi_32(x64emu_t *emu, uintptr_t fnc);
 void pFEppip_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXipp_32(x64emu_t *emu, uintptr_t fnc);
@@ -996,11 +1003,13 @@ void iFiiuBp_Bp__32(x64emu_t *emu, uintptr_t fnc);
 void vFbp_ppibup__32(x64emu_t *emu, uintptr_t fnc);
 void iFEXbpLiL_pp_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppbp_bup__32(x64emu_t *emu, uintptr_t fnc);
+void LFXLrLiiuL_Lp_32(x64emu_t *emu, uintptr_t fnc);
+void pFEXLrLiiuL_i_32(x64emu_t *emu, uintptr_t fnc);
 void iFXbp_iubpLiL__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLiubiiiiiLi__32(x64emu_t *emu, uintptr_t fnc);
 void LFLbp_bL_bp_bL__32(x64emu_t *emu, uintptr_t fnc);
 void vFXLbLLLLLLLLLL_iL_32(x64emu_t *emu, uintptr_t fnc);
-void iFXiiibpLiiiLLLii__32(x64emu_t *emu, uintptr_t fnc);
+void iFXiiiBpLiiiLLLii__32(x64emu_t *emu, uintptr_t fnc);
 void LFpLpriiiiiiiiilt_a_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLpbLWWWcc_bLWWWcc__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLpBLWWWcc_BLWWWcc__32(x64emu_t *emu, uintptr_t fnc);
@@ -1074,6 +1083,7 @@ void vFXiLppi_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLiiii_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLiiiL_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLiipi_32(x64emu_t *emu, uintptr_t fnc);
+void vFXLpppi_32(x64emu_t *emu, uintptr_t fnc);
 void iFEiippi_32(x64emu_t *emu, uintptr_t fnc);
 void iFEuppLp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEpiuuu_32(x64emu_t *emu, uintptr_t fnc);
@@ -1105,6 +1115,7 @@ void iFXLppii_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLpppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFXpIppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFXpuiii_32(x64emu_t *emu, uintptr_t fnc);
+void iFXpLiWL_32(x64emu_t *emu, uintptr_t fnc);
 void iFXpLLiL_32(x64emu_t *emu, uintptr_t fnc);
 void iFXppppi_32(x64emu_t *emu, uintptr_t fnc);
 void iFXppppp_32(x64emu_t *emu, uintptr_t fnc);
@@ -1203,12 +1214,14 @@ void iFXLpiiuu_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLpiipi_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLppiii_32(x64emu_t *emu, uintptr_t fnc);
 void iFXpiipii_32(x64emu_t *emu, uintptr_t fnc);
+void iFXpLiWwL_32(x64emu_t *emu, uintptr_t fnc);
 void iFXpLuuii_32(x64emu_t *emu, uintptr_t fnc);
 void uFuippppp_32(x64emu_t *emu, uintptr_t fnc);
 void pFEpiiiiu_32(x64emu_t *emu, uintptr_t fnc);
 void pFEpLiiii_32(x64emu_t *emu, uintptr_t fnc);
 void pFEpLiiiI_32(x64emu_t *emu, uintptr_t fnc);
 void pFEpLiiil_32(x64emu_t *emu, uintptr_t fnc);
+void vFXLLiiibl__32(x64emu_t *emu, uintptr_t fnc);
 void iFEpppibL_p_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLibL_ubL_u_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLpiibpiip_i_32(x64emu_t *emu, uintptr_t fnc);
@@ -1245,6 +1258,7 @@ void vFuuufffff_32(x64emu_t *emu, uintptr_t fnc);
 void vFffffffff_32(x64emu_t *emu, uintptr_t fnc);
 void vFXiLpiiuu_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLiiiLii_32(x64emu_t *emu, uintptr_t fnc);
+void vFXLLLiipi_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLppiipi_32(x64emu_t *emu, uintptr_t fnc);
 void iFEpippppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEpLiLppp_32(x64emu_t *emu, uintptr_t fnc);
@@ -1303,6 +1317,7 @@ void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXLiiuuLi_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbL_pppppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbL_bL_ppppp_32(x64emu_t *emu, uintptr_t fnc);
+void vFXiLLrLiiuL_iipi_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXbpLiLLLii_uipbLipi_uu_32(x64emu_t *emu, uintptr_t fnc);
 void vFEXLpppippp_32(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiiiiii_32(x64emu_t *emu, uintptr_t fnc);
@@ -1344,12 +1359,12 @@ void vFuffffffffff_32(x64emu_t *emu, uintptr_t fnc);
 void vFUufffffffff_32(x64emu_t *emu, uintptr_t fnc);
 void vFpiiiiiiiiuu_32(x64emu_t *emu, uintptr_t fnc);
 void vFpipipiipiiu_32(x64emu_t *emu, uintptr_t fnc);
-void vFXiLLpiiiipi_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLppiiiiuu_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXpLLiiLWpi_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiiiiuuiiip_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLLpiiuuiiL_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXpuiipuuii_32(x64emu_t *emu, uintptr_t fnc);
+void vFXiLLrLiiuL_iiiipi_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLibL_iiiibL_bL_bL__32(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiiuUC_32(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiuuip_32(x64emu_t *emu, uintptr_t fnc);
@@ -1359,10 +1374,10 @@ void vFuuiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc);
 void vFuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void vFffffffffffff_32(x64emu_t *emu, uintptr_t fnc);
 void vFXiLLpiiiipii_32(x64emu_t *emu, uintptr_t fnc);
-void vFXiLLpLiiiipi_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLppiiiiuui_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLpppppppppp_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fnc);
+void vFXiLLrLiiuL_Liiiipi_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc);
 void vFuuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
@@ -1373,6 +1388,7 @@ void iFddddpppddpppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFXippuuuiipppp_32(x64emu_t *emu, uintptr_t fnc);
 void uFippuuuulllipp_32(x64emu_t *emu, uintptr_t fnc);
 void LFEXLiiuuuiupLp_32(x64emu_t *emu, uintptr_t fnc);
+void iFXLLlliiLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fnc);
 void vFuffiiffiiffiip_32(x64emu_t *emu, uintptr_t fnc);
 void vFuddiiddiiddiip_32(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiuiiiiilll_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedlibc.c b/src/wrapped32/wrappedlibc.c
index 5f2b5ea2..779fb225 100755
--- a/src/wrapped32/wrappedlibc.c
+++ b/src/wrapped32/wrappedlibc.c
@@ -2650,7 +2650,6 @@ static void ctSetup()
 }
 #endif
 
-#if 0
 EXPORT void my32___register_frame_info(void* a, void* b)
 {
     // nothing
@@ -2659,7 +2658,7 @@ EXPORT void* my32___deregister_frame_info(void* a)
 {
     return NULL;
 }
-
+#if 0
 EXPORT void* my32____brk_addr = NULL;
 #endif
 // longjmp / setjmp
diff --git a/src/wrapped32/wrappedlibc_private.h b/src/wrapped32/wrappedlibc_private.h
index b60b02a0..e4bd1e58 100755
--- a/src/wrapped32/wrappedlibc_private.h
+++ b/src/wrapped32/wrappedlibc_private.h
@@ -2164,8 +2164,8 @@ GO(fallocate64, iFiiII)
 //DATAM(___brk_addr, 4)
 //DATA(__libc_enable_secure, 4)
 
-//GOM(__register_frame_info, vFpp)  //%%,noE faked function
-//GOM(__deregister_frame_info, pFp) //%%,noE
+GOM(__register_frame_info, vFpp)  //%%,noE faked function
+GOM(__deregister_frame_info, pFp) //%%,noE
 
 //GO(name_to_handle_at, iFipppi) // only glibc 2.14+, so may not be present...
 
diff --git a/src/wrapped32/wrappedlibx11.c b/src/wrapped32/wrappedlibx11.c
index 8f9ef6e3..16d06214 100644
--- a/src/wrapped32/wrappedlibx11.c
+++ b/src/wrapped32/wrappedlibx11.c
@@ -167,7 +167,7 @@ static int my32_error_handler_##A(void* dpy, void* error)
 {                                                                                           \
     static my_XErrorEvent_32_t evt = {0};                                                   \
     convert_XErrorEvent_to_32(&evt, error);                                                 \
-    return (int)RunFunctionFmt(my32_error_handler_fct_##A, "pp", getDisplay(dpy), &evt);   \
+    return (int)RunFunctionFmt(my32_error_handler_fct_##A, "pp", getDisplay(dpy), &evt);    \
 }
 SUPER()
 #undef GO
@@ -197,10 +197,10 @@ static void* reverse_error_handlerFct(library_t* lib, void* fct)
 
 // ioerror_handler
 #define GO(A)   \
-static uintptr_t my32_ioerror_handler_fct_##A = 0;                      \
-static int my32_ioerror_handler_##A(void* dpy)   \
-{                                                                   \
-    return (int)RunFunctionFmt(my32_ioerror_handler_fct_##A, "p", dpy);\
+static uintptr_t my32_ioerror_handler_fct_##A = 0;                                  \
+static int my32_ioerror_handler_##A(void* dpy)                                      \
+{                                                                                   \
+    return (int)RunFunctionFmt(my32_ioerror_handler_fct_##A, "p", getDisplay(dpy)); \
 }
 SUPER()
 #undef GO
@@ -263,10 +263,10 @@ static void* reverse_exterror_handlerFct(library_t* lib, void* fct)
 #endif
 // close_display
 #define GO(A)   \
-static uintptr_t my32_close_display_fct_##A = 0;                      \
-static int my32_close_display_##A(void* dpy, void* codes)   \
-{                                                                   \
-    return (int)RunFunctionFmt(my32_close_display_fct_##A, "pp", dpy, codes);\
+static uintptr_t my32_close_display_fct_##A = 0;                                            \
+static int my32_close_display_##A(void* dpy, void* codes)                                   \
+{                                                                                           \
+    return (int)RunFunctionFmt(my32_close_display_fct_##A, "pp", getDisplay(dpy), codes);   \
 }
 SUPER()
 #undef GO
@@ -296,10 +296,10 @@ static void* reverse_close_displayFct(library_t* lib, void* fct)
 
 // register_im
 #define GO(A)   \
-static uintptr_t my32_register_im_fct_##A = 0;                        \
-static void my32_register_im_##A(void* dpy, void* u, void* d)         \
-{                                                                   \
-    RunFunctionFmt(my32_register_im_fct_##A, "ppp", dpy, u, d);  \
+static uintptr_t my32_register_im_fct_##A = 0;                              \
+static void my32_register_im_##A(void* dpy, void* u, void* d)               \
+{                                                                           \
+    RunFunctionFmt(my32_register_im_fct_##A, "ppp", getDisplay(dpy), u, d); \
 }
 SUPER()
 #undef GO
@@ -352,12 +352,12 @@ static void* findXConnectionWatchProcFct(void* fct)
 #endif
 // xifevent
 #define GO(A)   \
-static uintptr_t my32_xifevent_fct_##A = 0;                                 \
-static int my32_xifevent_##A(void* dpy, my_XEvent_t* event, void* d)        \
-{                                                                           \
-    static my_XEvent_32_t evt = {0};                                        \
-    convertXEvent(&evt, event);                                             \
-    return RunFunctionFmt(my32_xifevent_fct_##A, "ppp", dpy, &evt, d);      \
+static uintptr_t my32_xifevent_fct_##A = 0;                                         \
+static int my32_xifevent_##A(void* dpy, my_XEvent_t* event, void* d)                \
+{                                                                                   \
+    static my_XEvent_32_t evt = {0};                                                \
+    convertXEvent(&evt, event);                                                     \
+    return RunFunctionFmt(my32_xifevent_fct_##A, "ppp", getDisplay(dpy), &evt, d);  \
 }
 SUPER()
 #undef GO
@@ -1316,13 +1316,17 @@ EXPORT int32_t my32_XIfEvent(x64emu_t* emu, void* d,void* ev, EventHandler h, vo
 
 EXPORT int32_t my32_XCheckIfEvent(x64emu_t* emu, void* d,void* ev, EventHandler h, void* arg)
 {
-    int32_t ret = my->XCheckIfEvent(d, ev, findxifeventFct(h), arg);
+    my_XEvent_t event = {0};
+    int32_t ret = my->XCheckIfEvent(d, &event, findxifeventFct(h), arg);
+    convertXEvent(ev, &event);
     return ret;
 }
 #if 0
 EXPORT int32_t my32_XPeekIfEvent(x64emu_t* emu, void* d,void* ev, EventHandler h, void* arg)
 {
-    int32_t ret = my->XPeekIfEvent(d, ev, findxifeventFct(h), arg);
+    my_XEvent_t event = {0};
+    int32_t ret = my->XPeekIfEvent(d, &event, findxifeventFct(h), arg);
+    convertXEvent(ev, &event);
     return ret;
 }
 #endif
@@ -1749,6 +1753,17 @@ EXPORT XID my32_XCreateWindow(x64emu_t* emu, void* d, XID Window, int x, int y,
 
 void convertXEvent(my_XEvent_32_t* dst, my_XEvent_t* src)
 {
+    if(!src->type) {
+        // This is an XErrorEvent, and it's different!
+        dst->xerror.type = src->xerror.type;
+        dst->xerror.display = to_ptrv(FindDisplay(src->xerror.display));
+        dst->xerror.resourceid = to_ulong(src->xerror.resourceid);
+        dst->xerror.serial = to_ulong(src->xerror.serial);
+        dst->xerror.error_code = src->xerror.error_code;
+        dst->xerror.request_code = src->xerror.request_code;
+        dst->xerror.minor_code = src->xerror.minor_code;
+        return;
+    }
     // convert the XAnyEvent first, as it's a common set
     dst->type = src->type;
     dst->xany.display = to_ptrv(FindDisplay(src->xany.display));
@@ -1957,13 +1972,23 @@ void convertXEvent(my_XEvent_32_t* dst, my_XEvent_t* src)
             dst->xgeneric.extension = src->xgeneric.extension;
             dst->xgeneric.evtype = src->xgeneric.evtype;
             break;
-
         default:
             printf_log(LOG_INFO, "Warning, unsupported 32bits XEvent type=%d\n", src->type);
     }
 }
 void unconvertXEvent(my_XEvent_t* dst, my_XEvent_32_t* src)
 {
+    if(!src->type) {
+        // This is an XErrorEvent, and it's different!
+        dst->xerror.type = src->xerror.type;
+        dst->xerror.display = getDisplay(from_ptrv(src->xerror.display));
+        dst->xerror.resourceid = from_ulong(src->xerror.resourceid);
+        dst->xerror.serial = from_ulong(src->xerror.serial);
+        dst->xerror.error_code = src->xerror.error_code;
+        dst->xerror.request_code = src->xerror.request_code;
+        dst->xerror.minor_code = src->xerror.minor_code;
+        return;
+    }
     // convert the XAnyEvent first, as it's a common set
     dst->type = src->type;
     dst->xany.display = getDisplay(from_ptrv(src->xany.display));
@@ -2571,9 +2596,10 @@ EXPORT void* my32_XCreateFontSet(x64emu_t* emu, void* dpy, void* name, ptr_t* mi
 {
     void** missing_l = NULL;
     void* string_l = NULL;
-    void* ret = my->XCreateFontSet(dpy, name, &missing_l, missing_count, &string_l);
+    void* ret = my->XCreateFontSet(dpy, name, &missing_l, missing_count, string?(&string_l):NULL);
     if(string) *string = to_ptrv(string_l);
     // inplace string list shrink
+    *missing = to_ptrv(missing_l);
     if(missing_l && *missing_count) {
         for(int i=0; i<*missing_count; ++i)
             ((ptr_t*)missing_l)[i] = to_ptrv(missing_l[i]);
@@ -2581,7 +2607,6 @@ EXPORT void* my32_XCreateFontSet(x64emu_t* emu, void* dpy, void* name, ptr_t* mi
     // put end marker, for expansion
     if(missing_l)
         ((ptr_t*)missing_l)[*missing_count] = 0;
-    *string = to_ptrv(missing_l);
     return ret;
 }
 
@@ -2606,7 +2631,7 @@ EXPORT void my32_XFreeStringList(x64emu_t* emu, ptr_t* list)
     int n = 0;
     while(list[n]) ++n;
     // inplace string list expand
-    for(int i=n-1; i>=0; ++i)
+    for(int i=n-1; i>=0; --i)
         ((void**)list)[i] = from_ptrv(list[i]);
 
     my->XFreeStringList(list);
@@ -2729,6 +2754,17 @@ EXPORT void* my32_XGetVisualInfo(x64emu_t* emu, void* dpy, long mask, my_XVisual
     return ret;
 }
 
+EXPORT int my32_XQueryColors(x64emu_t* emu, void* dpy, XID map, my_XColor_32_t* defs, int ncolor)
+{
+    struct_LWWWcc_t defs_l[ncolor];
+    for(int i=0; i<ncolor; ++i)
+        from_struct_LWWWcc(defs_l+i, to_ptrv(defs+i));
+    int ret = my->XQueryColors(dpy, map, defs_l, ncolor);
+    for(int i=0; i<ncolor; ++i)
+        to_struct_LWWWcc(to_ptrv(defs+i), defs_l+i);
+    return ret;
+}
+
 #define CUSTOM_INIT                 \
     AddAutomaticBridge(lib->w.bridge, vFp_32, *(void**)dlsym(lib->w.lib, "_XLockMutex_fn"), 0, "_XLockMutex_fn"); \
     AddAutomaticBridge(lib->w.bridge, vFp_32, *(void**)dlsym(lib->w.lib, "_XUnlockMutex_fn"), 0, "_XUnlockMutex_fn"); \
diff --git a/src/wrapped32/wrappedlibx11_private.h b/src/wrapped32/wrappedlibx11_private.h
index 2603761c..9884c016 100644
--- a/src/wrapped32/wrappedlibx11_private.h
+++ b/src/wrapped32/wrappedlibx11_private.h
@@ -49,7 +49,7 @@ GO(XChangePointerControl, iFXiiiii)
 GOM(XChangeProperty, iFEXLLLiipi)
 GO(XChangeSaveSet, iFXLi)
 GO(XChangeWindowAttributes, iFXLLbLLLLiiiLLilliLL_)
-GOM(XCheckIfEvent, iFEpppp)
+GOM(XCheckIfEvent, iFEXppp)
 //GO(XCheckMaskEvent, iFplp)
 GOM(XCheckTypedEvent, iFEXip)
 GOM(XCheckTypedWindowEvent, iFEXLip)
@@ -263,7 +263,7 @@ GO(XDisplayHeight, iFXi)
 GO(XDisplayHeightMM, iFXi)
 GO(XDisplayKeycodes, iFXpp)
 GO(XDisplayMotionBufferSize, LFX)
-GO(XDisplayName, pFp)
+GO(XDisplayName, tFp)
 GO(XDisplayOfIM, XFp)
 GO(XDisplayOfOM, XFp)
 //GOM(XDisplayOfScreen, XFEbpXLiiiiipippLLLiiiil_)
@@ -888,7 +888,7 @@ GO(XMapRaised, iFXL)
 GO(XMapSubwindows, iFXL)
 GO(XMapWindow, iFXL)
 //GO(XMaskEvent, iFplp)
-GO(XMatchVisualInfo, iFXiiibpLiiiLLLii_)
+GO(XMatchVisualInfo, iFXiiiBpLiiiLLLii_)
 //GOM(XMaxCmapsOfScreen, iFEbpXLiiiiipippLLLiiiil_)
 GO(XMaxRequestSize, lFX)
 //GO(_XmbDefaultDrawImageString, 
@@ -967,7 +967,7 @@ GO(XQueryBestSize, iFXiLuupp)
 GO(XQueryBestStipple, iFXLuupp)
 GO(XQueryBestTile, iFXLuupp)
 GO(XQueryColor, iFXLbLWWWcc_)
-GO(XQueryColors, iFXLbLWWWcc_i)
+GOM(XQueryColors, iFEXLpi)
 GOM(XQueryExtension, iFEXpppp)
 //GOSM(XQueryFont, bpLuuuuuiuibLL_pppii_FEXL)
 GO(XQueryKeymap, iFXp)
diff --git a/src/wrapped32/wrappedlibxcursor_private.h b/src/wrapped32/wrappedlibxcursor_private.h
index af22fe9e..528b0ff4 100644
--- a/src/wrapped32/wrappedlibxcursor_private.h
+++ b/src/wrapped32/wrappedlibxcursor_private.h
@@ -31,16 +31,16 @@
 //GO(_XcursorGetDisplayInfo, 
 //GO(XcursorGetTheme, pFp)
 //GO(XcursorGetThemeCore, iFp)
-//GO(XcursorImageCreate, pFii)
-//GO(XcursorImageDestroy, vFp)
+GO(XcursorImageCreate, pFii)
+GO(XcursorImageDestroy, vFp)
 //GOM(XcursorImageHash, vFEpp)    // needs unbridge XImage (first p)
-//GO(XcursorImageLoadCursor, LFpp)
-//GO(XcursorImagesCreate, pFi)
-//GO(XcursorImagesDestroy, vFp)
-//GO(XcursorImagesLoadCursor, LFpp)
+GO(XcursorImageLoadCursor, LFXp)
+GO(XcursorImagesCreate, pFi)
+GO(XcursorImagesDestroy, vFp)
+GO(XcursorImagesLoadCursor, LFXp)
 //GO(XcursorImagesLoadCursors, pFpp)
 //GO(XcursorImagesSetName, vFpp)
-//GO(XcursorLibraryLoadCursor, LFpp)
+GO(XcursorLibraryLoadCursor, LFXp)
 //GO(XcursorLibraryLoadCursors, pFpp)
 //GO(XcursorLibraryLoadImage, pFppi)
 //GO(XcursorLibraryLoadImages, pFppi)
diff --git a/src/wrapped32/wrappedlibxext.c b/src/wrapped32/wrappedlibxext.c
index 9d7c913a..16d910f3 100644
--- a/src/wrapped32/wrappedlibxext.c
+++ b/src/wrapped32/wrappedlibxext.c
@@ -53,6 +53,8 @@ typedef struct my32_XExtensionHooks {
 
 #include "wrappercallback32.h"
 
+void* getDisplay(void*);
+
 #define SUPER() \
 GO(0)   \
 GO(1)   \
@@ -62,10 +64,10 @@ GO(4)
 
 // exterrorhandle ...
 #define GO(A)   \
-static uintptr_t my_exterrorhandle_fct_##A = 0;                                                 \
-static int my_exterrorhandle_##A(void* display, void* ext_name, void* reason)                   \
-{                                                                                               \
-    return RunFunctionFmt(my_exterrorhandle_fct_##A, "ppp", display, ext_name, reason);   \
+static uintptr_t my_exterrorhandle_fct_##A = 0;                                                     \
+static int my_exterrorhandle_##A(void* display, void* ext_name, void* reason)                       \
+{                                                                                                   \
+    return RunFunctionFmt(my_exterrorhandle_fct_##A, "ppp", getDisplay(display), ext_name, reason); \
 }
 SUPER()
 #undef GO
@@ -368,11 +370,11 @@ EXPORT int32_t my32_XShmGetImage(x64emu_t* emu, void* disp, size_t drawable, voi
     return r;
 }
 
-//EXPORT void* my32_XSetExtensionErrorHandler(x64emu_t* emu, void* handler)
-//{
-//    (void)emu;
-//    return reverse_exterrorhandleFct(my->XSetExtensionErrorHandler(find_exterrorhandle_Fct(handler)));
-//}
+EXPORT void* my32_XSetExtensionErrorHandler(x64emu_t* emu, void* handler)
+{
+    (void)emu;
+    return reverse_exterrorhandleFct(my->XSetExtensionErrorHandler(find_exterrorhandle_Fct(handler)));
+}
 
 //EXPORT void* my32_XextAddDisplay(x64emu_t* emu, void* extinfo, void* dpy, void* extname, my32_XExtensionHooks* hooks, int nevents, void* data)
 //{
diff --git a/src/wrapped32/wrappedlibxext_private.h b/src/wrapped32/wrappedlibxext_private.h
index ba6f41fe..1f46c486 100644
--- a/src/wrapped32/wrappedlibxext_private.h
+++ b/src/wrapped32/wrappedlibxext_private.h
@@ -66,7 +66,7 @@ GO(XSecurityFreeXauth, vFbWWpWpWpWp_)
 //GO(XSecurityGenerateAuthorization, bWWpWpWpWp_FXbWWpWpWpWp_LbuuLl_bL_)
 GO(XSecurityQueryExtension, iFXpp)
 GO(XSecurityRevokeAuthorization, iFXL)
-//GOM(XSetExtensionErrorHandler, pFEp)
+GOM(XSetExtensionErrorHandler, pFEp)
 GO(XShapeCombineMask, vFXLiiiLi)
 GO(XShapeCombineRectangles, vFXLiiipiii)
 GO(XShapeCombineRegion, vFXLiiipi)
diff --git a/src/wrapped32/wrappedlibxrandr.c b/src/wrapped32/wrappedlibxrandr.c
index 5b6108a9..48cc411f 100644
--- a/src/wrapped32/wrappedlibxrandr.c
+++ b/src/wrapped32/wrappedlibxrandr.c
@@ -126,6 +126,13 @@ EXPORT void* my32_XRRGetScreenResources(x64emu_t* emu, void* dpy, XID window)
     return ret;
 }
 
+EXPORT void* my32_XRRGetScreenResourcesCurrent(x64emu_t* emu, void* dpy, XID window)
+{
+    void* ret = my->XRRGetScreenResourcesCurrent(dpy, window);
+    inplace_XRRScreenResources_shrink(ret);
+    return ret;
+}
+
 EXPORT int my32_XRRSetCrtcConfig(x64emu_t* emu, void* dpy, void* res, XID crtc, unsigned long timestamp, int x, int y, XID mode, uint16_t rotation, XID_32* outputs, int noutputs)
 {
     XID outputs_l[noutputs];
@@ -239,6 +246,107 @@ EXPORT void* my32_XRRGetOutputInfo(x64emu_t* emu, void* dpy, void* res, XID wind
     return ret;
 }
 
+void inplace_XRRProviderInfo_shrink(void* a)
+{
+    if(!a) return;
+    my_XRRProviderInfo_32_t *dst = a;
+    my_XRRProviderInfo_t* src = a;
+
+    for(int i=0; i<src->ncrtcs; ++i)
+        ((ulong_t*)src->crtcs)[i] = to_ulong(src->crtcs[i]);
+    for(int i=0; i<src->noutputs; ++i)
+        ((ulong_t*)src->outputs)[i] = to_ulong(src->outputs[i]);
+    for(int i=0; i<src->nassociatedproviders; ++i)
+        ((ulong_t*)src->associated_providers)[i] = to_ulong(src->associated_providers[i]);
+    dst->capabilities = src->capabilities;
+    dst->ncrtcs = src->ncrtcs;
+    dst->crtcs = to_ptrv(src->crtcs);
+    dst->noutputs = src->noutputs;
+    dst->outputs = to_ptrv(src->outputs);
+    dst->name = to_ptrv(src->name);
+    dst->nassociatedproviders = src->nassociatedproviders;
+    dst->associated_providers = to_ptrv(src->associated_providers);
+    dst->associated_capability = to_ptrv(src->associated_capability);
+    dst->nameLen = src->nameLen;
+}
+void inplace_XRRProviderInfo_enlarge(void* a)
+{
+    if(!a) return;
+    my_XRRProviderInfo_t *dst = a;
+    my_XRRProviderInfo_32_t* src = a;
+
+    dst->nameLen = src->nameLen;
+    dst->associated_capability = from_ptrv(src->associated_capability);
+    dst->associated_providers = from_ptrv(src->associated_providers);
+    dst->nassociatedproviders = src->nassociatedproviders;
+    dst->name = from_ptrv(src->name);
+    dst->outputs = from_ptrv(src->outputs);
+    dst->noutputs = src->noutputs;
+    dst->crtcs = from_ptrv(src->crtcs);
+    dst->ncrtcs = src->ncrtcs;
+    dst->capabilities = src->capabilities;
+    for(int i=dst->ncrtcs-1; i>=0; --i)
+        dst->crtcs[i] = from_ulong(((ulong_t*)dst->crtcs)[i]);
+    for(int i=dst->noutputs-1; i>=0; --i)
+        dst->outputs[i] = from_ulong(((ulong_t*)dst->outputs)[i]);
+    for(int i=dst->nassociatedproviders-1; i>=0; --i)
+        dst->associated_providers[i] = from_ulong(((ulong_t*)dst->associated_providers)[i]);
+}
+
+EXPORT void* my32_XRRGetProviderInfo(x64emu_t* emu, void* dpy, void* res, XID provider)
+{
+    inplace_XRRScreenResources_enlarge(res);
+    void* ret = my->XRRGetProviderInfo(dpy, res, provider);
+    inplace_XRRScreenResources_shrink(res);
+    inplace_XRRProviderInfo_shrink(ret);
+    return ret;
+}
+
+EXPORT void my32_XRRFreeProviderInfo(x64emu_t* emu, void* r)
+{
+    inplace_XRRProviderInfo_enlarge(r);
+    my->XRRFreeProviderInfo(r);
+}
+
+void inplace_XRRProviderResources_shrink(void* a)
+{
+    if(!a) return;
+    my_XRRProviderResources_32_t* dst = a;
+    my_XRRProviderResources_t* src = a;
+
+    for(int i=0; i<src->nproviders; ++i)
+        ((ulong_t*)src->providers)[i] = to_ulong(src->providers[i]);
+    dst->timestamp = to_long(src->timestamp);
+    dst->nproviders = src->nproviders;
+    dst->providers = to_ptrv(src->providers);
+}
+void inplace_XRRProviderResources_enlarge(void* a)
+{
+    if(!a) return;
+    my_XRRProviderResources_t* dst = a;
+    my_XRRProviderResources_32_t* src = a;
+
+    dst->timestamp = from_long(src->timestamp);
+    dst->nproviders = src->nproviders;
+    dst->providers = from_ptrv(src->providers);
+    for(int i=dst->nproviders-1; i>=0; --i)
+        dst->providers[i] = from_ulong(((ulong_t*)dst->providers)[i]);
+}
+
+EXPORT void* my32_XRRGetProviderResources(x64emu_t* emu, void* dpy, XID window)
+{
+    void* ret = my->XRRGetProviderResources(dpy, window);
+    inplace_XRRProviderResources_shrink(ret);
+    return ret;
+}
+
+EXPORT void my32_XRRFreeProviderResources(x64emu_t* emu, void* r)
+{
+    inplace_XRRProviderResources_enlarge(r);
+    my->XRRFreeProviderResources(r);
+}
+
+
 #ifdef ANDROID
 #define NEEDED_LIBS "libX11.so", "libXext.so", "libXrender.so"
 #else
diff --git a/src/wrapped32/wrappedlibxrandr_private.h b/src/wrapped32/wrappedlibxrandr_private.h
index 9c6600f1..28804660 100644
--- a/src/wrapped32/wrappedlibxrandr_private.h
+++ b/src/wrapped32/wrappedlibxrandr_private.h
@@ -5,69 +5,69 @@
 GO(XRRQueryVersion, iFXpp)
 GO(XRRFreeScreenConfigInfo, vFp)
 GOM(XRRGetCrtcInfo, pFEXpL)
-//GO(XRRListOutputProperties, pFpLp)
+//GO(XRRListOutputProperties, bL_FXLp)
 GO(XRRQueryExtension, iFXpp)
-//GO(XRRAllocModeInfo, pFpi)
-//GO(XRRGetProviderProperty, iFpLLlliiLppppp)
-//GO(XRRListProviderProperties, pFpLp)
-//GO(XRRRotations, WFpip)
-//GO(XRRSetCrtcTransform, vFpLpppi)
-//GO(XRRGetCrtcGammaSize, iFpL)
-//GO(XRRConfigRotations, WFpp)
-//GO(XRRGetProviderInfo, pFppL)
-//GO(XRRConfigureOutputProperty, vFpLLiiip)
-//GO(XRRSetOutputPrimary, vFpLL)
+//GO(XRRAllocModeInfo, bLuuLuuuuuuupuL_Fpi)
+//GO(XRRGetProviderProperty, iFXLLlliiLbL_pbL_bL_bp_)
+//GO(XRRListProviderProperties, bL_FXLp)
+GO(XRRRotations, WFXip)
+GO(XRRSetCrtcTransform, vFXLpppi)
+GO(XRRGetCrtcGammaSize, iFXL)
+GO(XRRConfigRotations, WFpp)
+GOM(XRRGetProviderInfo, pFEXpL)
+GO(XRRConfigureOutputProperty, vFXLLiiibl_)
+GO(XRRSetOutputPrimary, vFXLL)
 GO(XRRFreeOutputInfo, vFp)
 //GO(XRRUpdateConfiguration, iFp)
 GOM(XRRGetScreenResources, pFEXL)
-//GO(XRRConfigSizes, pFpp)
-//GO(XRRQueryProviderProperty, pFpLL)
-//GO(XRRDeleteOutputProperty, vFpLL)
-//GO(XRRDeleteProviderProperty, vFpLL)
-//GO(XRRSetScreenConfig, iFppLiWL)
-//GO(XRRAllocGamma, pFi)
+GO(XRRConfigSizes, pFpp)
+//GO(XRRQueryProviderProperty, biiiibl__FXLL)
+GO(XRRDeleteOutputProperty, vFXLL)
+GO(XRRDeleteProviderProperty, vFXLL)
+GO(XRRSetScreenConfig, iFXpLiWL)
+//GO(XRRAllocGamma, bippp_Fi)
 GO(XRRSetScreenSize, vFXLiiii)
-//GO(XRRSetScreenConfigAndRate, iFppLiWwL)
+GO(XRRSetScreenConfigAndRate, iFXpLiWwL)
 GO(XRRFreeScreenResources, vFp)
 GO(XRRGetOutputPrimary, LFXL)
-//GO(XRRCreateMode, LFpLp)
-//GO(XRRConfigCurrentRate, wFp)
-//GO(XRRDestroyMode, vFpL)
+//GO(XRRCreateMode, LFXLbLuuLuuuuuuupuL_)
+GO(XRRConfigCurrentRate, wFp)
+GO(XRRDestroyMode, vFXL)
 GOM(XRRSetCrtcConfig, iFEXpLLiiLWpi)
-//GO(XRRConfigCurrentConfiguration, WFpp)
-//GO(XRRSizes, pFpip)
-//GO(XRRAddOutputMode, vFpLL)
+GO(XRRConfigCurrentConfiguration, WFpp)
+GO(XRRSizes, pFXip)
+GO(XRRAddOutputMode, vFXLL)
 GO(XRRFreePanning, vFp)
-//GO(XRRFreeProviderResources, vFp)
-//GO(XRRChangeProviderProperty, vFpLLLiipi)
+GOM(XRRFreeProviderResources, vFEp)
+GO(XRRChangeProviderProperty, vFXLLLiipi)
 GOM(XRRGetPanning, pFEXpL)
-//GO(XRRSetProviderOffloadSink, iFpLL)
-//GO(XRRGetScreenResourcesCurrent, pFpL)
-//GO(XRRConfigTimes, LFpp)
-//GO(XRRSetCrtcGamma, vFpLp)
-//GO(XRRSetProviderOutputSource, iFpLL)
+GO(XRRSetProviderOffloadSink, iFXLL)
+GOM(XRRGetScreenResourcesCurrent, pFEXL)
+GO(XRRConfigTimes, LFpbL_)
+//GO(XRRSetCrtcGamma, vFXLbippp_)
+GO(XRRSetProviderOutputSource, iFXLL)
 GO(XRRGetScreenSizeRange, iFXLpppp)
-//GO(XRRRates, pFpiip)
-//GO(XRRFreeProviderInfo, vFp)
-//GO(XRRConfigRates, pFpip)
-//GO(XRRQueryOutputProperty, pFpLL)
-//GO(XRRGetOutputProperty, iFpLLlliiLppppp)
-//GO(XRRFreeGamma, vFp)
-//GO(XRRRootToScreen, iFpL)
-//GO(XRRGetScreenInfo, pFpL)
+GO(XRRRates, pFXiip)
+GOM(XRRFreeProviderInfo, vFEp)
+GO(XRRConfigRates, pFpip)
+//GO(XRRQueryOutputProperty, biiiibl__FXLL)
+GO(XRRGetOutputProperty, iFXLLlliiLBL_pBL_BL_Bp_)
+//GO(XRRFreeGamma, vFbippp_)
+GO(XRRRootToScreen, iFXL)
+GO(XRRGetScreenInfo, pFXL)
 GO(XRRFreeCrtcInfo, vFp)
-//GO(XRRGetProviderResources, pFpL)
-//GO(XRRFreeModeInfo, vFp)
-//GO(XRRChangeOutputProperty, vFpLLLiipi)
-//GO(XRRGetCrtcGamma, pFpL)
+GOM(XRRGetProviderResources, pFEXL)
+//GO(XRRFreeModeInfo, vFbLuuLuuuuuuupuL_)
+GO(XRRChangeOutputProperty, vFXLLLiipi)
+//GO(XRRGetCrtcGamma, bippp_FXL)
 GOM(XRRSetPanning, iFEXpLp)
-//GO(XRRSelectInput, vFpLi)
-//GO(XRRGetCrtcTransform, iFpLp)
-//GO(XRRTimes, LFpip)
-//GO(XRRDeleteOutputMode, vFpLL)
+GO(XRRSelectInput, vFXLi)
+//GO(XRRGetCrtcTransform, iFXLbbiiiiiiiiipipiiiiiiiiipip__)
+//GO(XRRTimes, LFXibL_)
+GO(XRRDeleteOutputMode, vFXLL)
 GOM(XRRGetOutputInfo, pFEXpL)
-//GO(XRRConfigureProviderProperty, vFpLLiiip)
-//GO(XRRAllocateMonitor, pFpi)
-//GO(XRRGetMonitors, pFpLip)
-//GO(XRRSetMonitor, vFpLp)
-//GO(XRRFreeMonitors, vFp)
+GO(XRRConfigureProviderProperty, vFXLLiiibl_)
+//GO(XRRAllocateMonitor, bLiiiiiiiiibL__FXi)
+//GO(XRRGetMonitors, bLiiiiiiiiibL__FXLip)
+//GO(XRRSetMonitor, vFXLbLiiiiiiiiibL__)
+//GO(XRRFreeMonitors, vFbLiiiiiiiiibL__)
diff --git a/src/wrapped32/wrappedlibxrender.c b/src/wrapped32/wrappedlibxrender.c
index 970aebc2..e1688640 100644
--- a/src/wrapped32/wrappedlibxrender.c
+++ b/src/wrapped32/wrappedlibxrender.c
@@ -6,10 +6,18 @@
 
 #include "wrappedlibs.h"
 
+
+#include "debug.h"
 #include "wrapper32.h"
 #include "bridge.h"
 #include "librarian/library_private.h"
 #include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box32context.h"
+#include "emu/x64emu_private.h"
+#include "converter32.h"
 
 #ifdef ANDROID
     static const char* libxrenderName = "libXrender.so";
@@ -25,4 +33,65 @@
 #define NEEDED_LIBS "libX11.so.6"
 #endif
 
+#include "libtools/my_x11_defs.h"
+#include "libtools/my_x11_defs_32.h"
+
+#include "generated/wrappedlibxrendertypes32.h"
+
+#include "wrappercallback32.h"
+
+KHASH_MAP_INIT_INT64(picformat, void*);
+static kh_picformat_t*   hash_picformat;
+
+EXPORT void* my32_XRenderFindFormat(x64emu_t* emu, void* dpy, unsigned long mask, void* tmpl, int count)
+{
+    void* ret = my->XRenderFindFormat(dpy, mask, tmpl, count);
+    khint_t k = kh_get(picformat, hash_picformat, (uintptr_t)ret);
+    if(k!=kh_end(hash_picformat))
+        return kh_value(hash_picformat, k);
+    int r;
+    k = kh_put(picformat, hash_picformat, (uintptr_t)ret, &r);
+    struct_LiiuL_t* res = box_calloc(1, sizeof(struct_LiiuL_t));
+    to_struct_LiiuL(to_ptrv(res), ret);
+    kh_value(hash_picformat, k) = res;
+    return res;
+}
+
+EXPORT void* my32_XRenderFindStandardFormat(x64emu_t* emu, void* dpy, int fmt)
+{
+    void* ret = my->XRenderFindStandardFormat(dpy, fmt);
+    khint_t k = kh_get(picformat, hash_picformat, (uintptr_t)ret);
+    if(k!=kh_end(hash_picformat))
+        return kh_value(hash_picformat, k);
+    int r;
+    k = kh_put(picformat, hash_picformat, (uintptr_t)ret, &r);
+    struct_LiiuL_t* res = box_calloc(1, sizeof(struct_LiiuL_t));
+    to_struct_LiiuL(to_ptrv(res), ret);
+    kh_value(hash_picformat, k) = res;
+    return res;
+}
+
+EXPORT void* my32_XRenderFindVisualFormat(x64emu_t* emu, void* dpy, void* visual)
+{
+    void* ret = my->XRenderFindVisualFormat(dpy, visual);
+    khint_t k = kh_get(picformat, hash_picformat, (uintptr_t)ret);
+    if(k!=kh_end(hash_picformat))
+        return kh_value(hash_picformat, k);
+    int r;
+    k = kh_put(picformat, hash_picformat, (uintptr_t)ret, &r);
+    struct_LiiuL_t* res = box_calloc(1, sizeof(struct_LiiuL_t));
+    to_struct_LiiuL(to_ptrv(res), ret);
+    kh_value(hash_picformat, k) = res;
+    return res;
+}
+
+#define CUSTOM_INIT         \
+    hash_picformat = kh_init(picformat);
+
+#define CUSTOM_FINI                                     \
+    void* p;                                            \
+    kh_foreach_value(hash_picformat, p, box_free(p));   \
+    kh_destroy(picformat, hash_picformat);              \
+    hash_picformat = NULL;
+
 #include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedlibxrender_private.h b/src/wrapped32/wrappedlibxrender_private.h
index 9be44f6c..22125395 100644
--- a/src/wrapped32/wrappedlibxrender_private.h
+++ b/src/wrapped32/wrappedlibxrender_private.h
@@ -7,22 +7,22 @@ GO(XRenderAddTraps, vFXLiipi)
 GO(XRenderChangePicture, vFXLLp)
 GO(XRenderComposite, vFXiLLLiiiiiiuu)
 GO(XRenderCompositeDoublePoly, vFXiLLpiiiipii)
-GO(XRenderCompositeString16, vFXiLLpLiiiipi)
-GO(XRenderCompositeString32, vFXiLLpLiiiipi)
-GO(XRenderCompositeString8, vFXiLLpLiiiipi)
-GO(XRenderCompositeText16, vFXiLLpiiiipi)
-GO(XRenderCompositeText32, vFXiLLpiiiipi)
-GO(XRenderCompositeText8, vFXiLLpiiiipi)
-GO(XRenderCompositeTrapezoids, vFXiLLpiipi)
+GO(XRenderCompositeString16, vFXiLLrLiiuL_Liiiipi)
+GO(XRenderCompositeString32, vFXiLLrLiiuL_Liiiipi)
+GO(XRenderCompositeString8, vFXiLLrLiiuL_Liiiipi)
+GO(XRenderCompositeText16, vFXiLLrLiiuL_iiiipi)
+GO(XRenderCompositeText32, vFXiLLrLiiuL_iiiipi)
+GO(XRenderCompositeText8, vFXiLLrLiiuL_iiiipi)
+GO(XRenderCompositeTrapezoids, vFXiLLrLiiuL_iipi)
 GO(XRenderCompositeTriangles, vFXiLLpiipi)
 GO(XRenderCompositeTriFan, vFXiLLpiipi)
 GO(XRenderCompositeTriStrip, vFXiLLpiipi)
 GO(XRenderCreateAnimCursor, LFXip)
 GO(XRenderCreateConicalGradient, LFXpppi)
 GO(XRenderCreateCursor, LFXLuu)
-GO(XRenderCreateGlyphSet, LFXp)
+GO(XRenderCreateGlyphSet, LFXrLiiuL_)
 GO(XRenderCreateLinearGradient, LFXpppi)
-GO(XRenderCreatePicture, LFXLpLp)
+GO(XRenderCreatePicture, LFXLrLiiuL_Lp)
 GO(XRenderCreateRadialGradient, LFXpppi)
 GO(XRenderCreateSolidFill, LFXp)
 //DATAB(XRenderExtensionInfo, sizeof(ptr_t))
@@ -30,9 +30,9 @@ GO(XRenderCreateSolidFill, LFXp)
 GO(XRenderFillRectangle, vFXiLpiiuu)
 GO(XRenderFillRectangles, vFXiLppi)
 //GO(XRenderFindDisplay, pFp)
-GO(XRenderFindFormat, pFXLpi)
-GO(XRenderFindStandardFormat, pFXi)
-GO(XRenderFindVisualFormat, pFXp)
+GOM(XRenderFindFormat, pFEXLrLiiuL_i)
+GOM(XRenderFindStandardFormat, pFEXi)
+GOM(XRenderFindVisualFormat, pFEXp)
 GO(XRenderFreeGlyphs, vFXLpi)
 GO(XRenderFreeGlyphSet, vFXL)
 GO(XRenderFreePicture, vFXL)
@@ -40,7 +40,7 @@ GO(XRenderParseColor, iFXpp)
 GO(XRenderQueryExtension, iFXpp)
 GO(XRenderQueryFilters, pFXL)
 GO(XRenderQueryFormats, iFX)
-GO(XRenderQueryPictIndexValues, pFXpp)
+GO(XRenderQueryPictIndexValues, pFXrLiiuL_p)
 GO(XRenderQuerySubpixelOrder, iFXi)
 GO(XRenderQueryVersion, iFXpp)
 GO(XRenderReferenceGlyphSet, LFXL)
diff --git a/src/wrapped32/wrappedlibxxf86vm_private.h b/src/wrapped32/wrappedlibxxf86vm_private.h
index 43b47f85..eb906fab 100644
--- a/src/wrapped32/wrappedlibxxf86vm_private.h
+++ b/src/wrapped32/wrappedlibxxf86vm_private.h
@@ -4,14 +4,14 @@
 
 //GO(XF86VidModeGetViewPort, iFpipp)
 //GO(XF86VidModeValidateModeLine, iFpip)
-//GO(XF86VidModeGetGamma, iFpip)
-//GO(XF86VidModeSetGamma, iFpip)
+GO(XF86VidModeGetGamma, iFXip)
+GO(XF86VidModeSetGamma, iFXip)
 GO(XF86VidModeSetClientVersion, iFX)
 GO(XF86VidModeGetGammaRamp, iFXiippp)
 //GO(XF86VidModeGetMonitor, iFpip)
 GO(XF86VidModeQueryVersion, iFXpp)
 GO(XF86VidModeDeleteModeLine, iFXip)
-//GO(XF86VidModeGetModeLine, iFpipp)
+GO(XF86VidModeGetModeLine, iFXipBWWWWWWWWWuip_)
 GOM(XF86VidModeGetAllModeLines, iFEXipp)
 GO(XF86VidModeSetGammaRamp, iFXiippp)
 //GO(XF86VidModeGetPermissions, iFpip)