about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-06 16:44:33 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-06 16:44:33 +0200
commit6e0b5358fbe20cd14b2728d3d0a688d1c84fd8a6 (patch)
treecc8b37ee6aeb9a5affbc830c5c42dcebbf3190ef /src
parente783e3c794ac60aa662985c079b3148ae8c41a2b (diff)
downloadbox64-6e0b5358fbe20cd14b2728d3d0a688d1c84fd8a6.tar.gz
box64-6e0b5358fbe20cd14b2728d3d0a688d1c84fd8a6.zip
[BOX32][WRAPPING] Added 32bits wrapped libXi (with new wrapperhelper)
Diffstat (limited to 'src')
-rw-r--r--src/library_list_32.h2
-rw-r--r--src/libtools/my_x11_defs.h36
-rw-r--r--src/libtools/my_x11_defs_32.h34
-rw-r--r--src/wrapped32/generated/converter32.c13
-rw-r--r--src/wrapped32/generated/converter32.h7
-rw-r--r--src/wrapped32/generated/functions_list.txt35
-rw-r--r--src/wrapped32/generated/wrappedlibxidefs32.h8
-rw-r--r--src/wrapped32/generated/wrappedlibxitypes32.h31
-rw-r--r--src/wrapped32/generated/wrappedlibxiundefs32.h8
-rw-r--r--src/wrapped32/generated/wrapper32.c40
-rw-r--r--src/wrapped32/generated/wrapper32.h20
-rw-r--r--src/wrapped32/wrappedlibxi.c168
-rw-r--r--src/wrapped32/wrappedlibxi_private.h88
13 files changed, 489 insertions, 1 deletions
diff --git a/src/library_list_32.h b/src/library_list_32.h
index c12061d5..031125e6 100644
--- a/src/library_list_32.h
+++ b/src/library_list_32.h
@@ -35,6 +35,7 @@ GO("libXfixes.so", libxfixes)
 GO("libXrender.so", libxrender)
 GO("libXcursor.so", libxcursor)
 GO("libXcomposite.so", libxcomposite)
+GO("libXi.so", libxi)
 GO("libXrandr.so", libxrandr)
 GO("libxrandr.so", libxrandr)
 GO("libXxf86vm.so", libxxf86vm)
@@ -46,6 +47,7 @@ GO("libXfixes.so.3", libxfixes)
 GO("libXrender.so.1", libxrender)
 GO("libXcomposite.so.1", libxcomposite)
 GO("libXcursor.so.1", libxcursor)
+GO("libXi.so.6", libxi)
 GO("libXrandr.so.2", libxrandr)
 GO("libxrandr.so.2", libxrandr)
 GO("libXxf86vm.so.1", libxxf86vm)
diff --git a/src/libtools/my_x11_defs.h b/src/libtools/my_x11_defs.h
index bb1f719e..2e8ede07 100644
--- a/src/libtools/my_x11_defs.h
+++ b/src/libtools/my_x11_defs.h
@@ -626,7 +626,7 @@ typedef struct my_XErrorEvent_s
 {
     int type;
     my_XDisplay_t *display;
-    XID resourceid;
+    XID           resourceid;
     unsigned long serial;
     unsigned char error_code;
     unsigned char request_code;
@@ -920,4 +920,38 @@ typedef struct my_XRRProviderResources_t {
     XID*            providers;
 } my_XRRProviderResources_t;
 
+typedef struct my_XIAnyClassInfo_s
+{
+    int         type;
+    int         sourceid;
+} my_XIAnyClassInfo_t;
+
+typedef struct my_XIDeviceInfo_s
+{
+    int                     deviceid;
+    char*                   name;
+    int                     use;
+    int                     attachment;
+    int                     enabled;
+    int                     num_classes;
+    my_XIAnyClassInfo_t**   classes;
+} my_XIDeviceInfo_t;
+
+typedef struct my_XIEventMask_s {
+    int deviceid;
+    int mask_len;
+    unsigned char* mask;
+} my_XIEventMask_t;
+
+typedef struct my_XInputClassInfo_s {
+     unsigned char input_class;
+     unsigned char event_type_base;
+} my_XInputClassInfo_t;
+
+typedef struct my_XDevice_s {
+     XID                    device_id;
+     int                    num_classes;
+     my_XInputClassInfo_t*  classes;
+} my_XDevice_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 115648ce..322ebd2d 100644
--- a/src/libtools/my_x11_defs_32.h
+++ b/src/libtools/my_x11_defs_32.h
@@ -853,4 +853,38 @@ typedef struct __attribute__((packed, aligned(4))) my_XRRProviderResources_32_t
     ptr_t     providers;    //XID*
 } my_XRRProviderResources_32_t;
 
+typedef struct __attribute__((packed, aligned(4))) my_XIAnyClassInfo_32_s
+{
+    int         type;
+    int         sourceid;
+} my_XIAnyClassInfo_32_t;
+
+typedef struct __attribute__((packed, aligned(4))) my_XIDeviceInfo_32_s
+{
+    int        deviceid;
+    ptr_t      name;   //char*
+    int        use;
+    int        attachment;
+    int        enabled;
+    int        num_classes;
+    ptr_t      classes;    //my_XIAnyClassInfo_t**
+} my_XIDeviceInfo_32_t;
+
+typedef struct __attribute__((packed, aligned(4))) my_XIEventMask_32_s {
+    int deviceid;
+    int mask_len;
+    ptr_t mask; //unsigned char*
+} my_XIEventMask_32_t;
+
+typedef struct __attribute__((packed, aligned(4))) my_XInputClassInfo_32_s {
+     unsigned char input_class;
+     unsigned char event_type_base;
+} my_XInputClassInfo_32_t;
+
+typedef struct __attribute__((packed, aligned(4))) my_XDevice_32_s {
+     XID_32 device_id;
+     int    num_classes;
+     ptr_t  classes;    //my_XInputClassInfo_t*
+} my_XDevice_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 06b322e9..b69f3be8 100644
--- a/src/wrapped32/generated/converter32.c
+++ b/src/wrapped32/generated/converter32.c
@@ -306,6 +306,19 @@ void to_struct_pLiL(ptr_t d, const struct_pLiL_t *src) {
 	*(int*)dest = src->i2; dest += 4;
 	*(ulong_t*)dest = to_ulong(src->L3); dest += 4;
 }
+void from_struct_Lip(struct_Lip_t *dest, ptr_t s) {
+	uint8_t* src = (uint8_t*)from_ptrv(s);
+	dest->L0 = from_ulong(*(ulong_t*)src); src += 4;
+	dest->i1 = *(int*)src; src += 4;
+	dest->p2 = from_ptrv(*(ptr_t*)src); src += 4;
+}
+void to_struct_Lip(ptr_t d, const struct_Lip_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;
+	*(ptr_t*)dest = to_ptrv(src->p2); dest += 4;
+}
 void from_struct_Lipi(struct_Lipi_t *dest, ptr_t s) {
 	uint8_t* src = (uint8_t*)from_ptrv(s);
 	dest->L0 = from_ulong(*(ulong_t*)src); src += 4;
diff --git a/src/wrapped32/generated/converter32.h b/src/wrapped32/generated/converter32.h
index ce7aa46d..f5d62d39 100644
--- a/src/wrapped32/generated/converter32.h
+++ b/src/wrapped32/generated/converter32.h
@@ -154,6 +154,13 @@ typedef struct struct_pLiL_s {
 } struct_pLiL_t;
 void from_struct_pLiL(struct_pLiL_t *dest, ptr_t src);
 void to_struct_pLiL(ptr_t dest, const struct_pLiL_t *src);
+typedef struct struct_Lip_s {
+	unsigned long L0;
+	int i1;
+	void* p2;
+} struct_Lip_t;
+void from_struct_Lip(struct_Lip_t *dest, ptr_t src);
+void to_struct_Lip(ptr_t dest, const struct_Lip_t *src);
 typedef struct struct_Lipi_s {
 	unsigned long L0;
 	int i1;
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index 137da121..1a870e15 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -347,6 +347,7 @@
 #() vFppi -> vFppi
 #() vFppu -> vFppu
 #() vFppp -> vFppp
+#() vFXiL -> vFXiL
 #() vFXLi -> vFXLi
 #() vFXLL -> vFXLL
 #() vFXLp -> vFXLp
@@ -512,6 +513,7 @@
 #() iFpbL_p -> iFpBp
 #() iFBp_LL -> iFBLL
 #() iFBp_pi -> iFBpi
+#() iFXibL_ -> iFXiB
 #() iFXLbp_ -> iFXLB
 #() iFXLbL_ -> iFXLB
 #() iFXbL_i -> iFXBi
@@ -534,6 +536,7 @@
 #() iFXbLC_i -> iFXBi
 #() vFLbL_bL_ -> vFLBB
 #() iFXbiip_i -> iFXBi
+#() iFXbLip_L -> iFXBL
 #() vFXLbpLiL_ -> vFXLB
 #() iFXLbpLiL_ -> iFXLB
 #() iFXLbLLii_ -> iFXLB
@@ -632,6 +635,7 @@
 #() vFppui -> vFppui
 #() vFpppp -> vFpppp
 #() vFXiiL -> vFXiiL
+#() vFXiLu -> vFXiLu
 #() vFXLii -> vFXLii
 #() vFXLLL -> vFXLLL
 #() vFXLLp -> vFXLLp
@@ -688,8 +692,10 @@
 #() iFpppp -> iFpppp
 #() iFSpiL -> iFSpiL
 #() iFXiii -> iFXiii
+#() iFXiiL -> iFXiiL
 #() iFXiip -> iFXiip
 #() iFXiuL -> iFXiuL
+#() iFXiLL -> iFXiLL
 #() iFXipi -> iFXipi
 #() iFXipp -> iFXipp
 #() iFXWWW -> iFXWWW
@@ -735,6 +741,7 @@
 #() pFEppi -> pFEppi
 #() pFEppp -> pFEppp
 #() pFEXip -> pFEXip
+#() pFEXLp -> pFEXLp
 #() pFEXpL -> pFEXpL
 #() pFEXpp -> pFEXpp
 #() pFiiiu -> pFiiiu
@@ -900,6 +907,7 @@
 #() iFEXLlp -> iFEXLlp
 #() iFEXLpi -> iFEXLpi
 #() iFEXpLp -> iFEXpLp
+#() iFEXppu -> iFEXppu
 #() iFEXppp -> iFEXppp
 #() iFiiipu -> iFiiipu
 #() iFiiipp -> iFiiipp
@@ -919,6 +927,8 @@
 #() iFppppp -> iFppppp
 #() iFXiiii -> iFXiiii
 #() iFXiiip -> iFXiiip
+#() iFXiuLi -> iFXiuLi
+#() iFXiLip -> iFXiLip
 #() iFXiLuu -> iFXiLuu
 #() iFXuuLL -> iFXuuLL
 #() iFXLLii -> iFXLLii
@@ -1063,6 +1073,7 @@
 #() iFpiippp -> iFpiippp
 #() iFppiiii -> iFppiiii
 #() iFXiiiii -> iFXiiiii
+#() iFXiiLip -> iFXiiLip
 #() iFXiippp -> iFXiippp
 #() iFXuuuuu -> iFXuuuuu
 #() iFXLiiiL -> iFXLiiiL
@@ -1096,6 +1107,7 @@
 #() iFXLLLLbL_ -> iFXLLLLB
 #() iFXLbL_ipi -> iFXLBipi
 #() iFXbL_upip -> iFXBupip
+#() iFXbLip_uubLip_L -> iFXBuuBL
 #() vFbp_bppup_ippbp_ -> vFBBippB
 #() vFiiiiiip -> vFiiiiiip
 #() vFiiiiuup -> vFiiiiuup
@@ -1183,6 +1195,7 @@
 #() pFEpLiiil -> pFEpLiiil
 #() vFXLLiiibl_ -> vFXLLiiiB
 #() iFEpppibL_p -> iFEpppiBp
+#() iFXiLibiip_ip -> iFXiLiBip
 #() iFXLibL_ubL_u -> iFXLiBuBu
 #() vFXLpiibpiip_i -> vFXLpiiBi
 #() iFXLpiibpiiL_i -> iFXLpiiBi
@@ -1216,6 +1229,7 @@
 #() vFuuuuuuuu -> vFuuuuuuuu
 #() vFuuufffff -> vFuuufffff
 #() vFffffffff -> vFffffffff
+#() vFXiLLiipi -> vFXiLLiipi
 #() vFXiLpiiuu -> vFXiLpiiuu
 #() vFXLiiiLii -> vFXLiiiLii
 #() vFXLLLiipi -> vFXLLLiipi
@@ -1276,6 +1290,8 @@
 #() pFEuiiiuuuu -> pFEuiiiuuuu
 #() pFEXLiiuuLi -> pFEXLiiuuLi
 #() iFXLbL_pppppp -> iFXLBpppppp
+#() iFXiLiiibiip_ip -> iFXiLiiiBip
+#() iFXiLLLiiibiip_ -> iFXiLLLiiiB
 #() iFXLbL_bL_ppppp -> iFXLBBppppp
 #() vFXiLLrLiiuL_iipi -> vFXiLLBiipi
 #() pFEXbpLiLLLii_uipbLipi_uu -> pFEXBuipBuu
@@ -1299,10 +1315,13 @@
 #() vFuddiiddiip -> vFuddiiddiip
 #() vFffffffffff -> vFffffffffff
 #() iFuiiiuuiiip -> iFuiiiuuiiip
+#() iFXiLLdduudd -> iFXiLLdduudd
 #() iFXuuLiuiiLL -> iFXuuLiuiiLL
 #() iFXLLpiiuuii -> iFXLLpiiuuii
 #() pFpppppppppp -> pFpppppppppp
 #() pFXpuiipuuii -> pFXpuiipuuii
+#() iFXiiLiiibiip_ip -> iFXiiLiiiBip
+#() iFXiLLiiibiip_ip -> iFXiLLiiiBip
 #() vFiiiiillliip -> vFiiiiillliip
 #() vFiiiiilllilp -> vFiiiiilllilp
 #() vFuiiiiiiiuip -> vFuiiiiiiiuip
@@ -1324,6 +1343,7 @@
 #() iFuiiiiuuiiip -> iFuiiiiuuiiip
 #() iFXLLpiiuuiiL -> iFXLLpiiuuiiL
 #() pFEXpuiipuuii -> pFEXpuiipuuii
+#() iFXiiLLiiibiip_ip -> iFXiiLLiiiBip
 #() vFXiLLrLiiuL_iiiipi -> vFXiLLBiiiipi
 #() iFXLibL_iiiibL_bL_bL_ -> iFXLiBiiiiBBB
 #() vFuiiiiiiiiuUC -> vFuiiiiiiiiuUC
@@ -1969,6 +1989,21 @@ wrappedlibxext:
 - iFXLppiiiiuui:
   - XShmPutImage
 wrappedlibxfixes:
+wrappedlibxi:
+- vFp:
+  - XIFreeDeviceInfo
+- iFXp:
+  - XCloseDevice
+- pFXL:
+  - XOpenDevice
+- pFXip:
+  - XIQueryDevice
+- pFXLp:
+  - XIGetSelectedEvents
+- iFXLpi:
+  - XISelectEvents
+- iFXppu:
+  - XGetDeviceButtonMapping
 wrappedlibxrandr:
 - vFp:
   - XRRFreeProviderInfo
diff --git a/src/wrapped32/generated/wrappedlibxidefs32.h b/src/wrapped32/generated/wrappedlibxidefs32.h
new file mode 100644
index 00000000..de50f737
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibxidefs32.h
@@ -0,0 +1,8 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibxiDEFS32_H_
+#define __wrappedlibxiDEFS32_H_
+
+
+#endif // __wrappedlibxiDEFS32_H_
diff --git a/src/wrapped32/generated/wrappedlibxitypes32.h b/src/wrapped32/generated/wrappedlibxitypes32.h
new file mode 100644
index 00000000..0e74b840
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibxitypes32.h
@@ -0,0 +1,31 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibxiTYPES32_H_
+#define __wrappedlibxiTYPES32_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef void (*vFp_t)(void*);
+typedef int32_t (*iFXp_t)(void*, void*);
+typedef void* (*pFXL_t)(void*, uintptr_t);
+typedef void* (*pFXip_t)(void*, int32_t, void*);
+typedef void* (*pFXLp_t)(void*, uintptr_t, void*);
+typedef int32_t (*iFXLpi_t)(void*, uintptr_t, void*, int32_t);
+typedef int32_t (*iFXppu_t)(void*, void*, void*, uint32_t);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(XIFreeDeviceInfo, vFp_t) \
+	GO(XCloseDevice, iFXp_t) \
+	GO(XOpenDevice, pFXL_t) \
+	GO(XIQueryDevice, pFXip_t) \
+	GO(XIGetSelectedEvents, pFXLp_t) \
+	GO(XISelectEvents, iFXLpi_t) \
+	GO(XGetDeviceButtonMapping, iFXppu_t)
+
+#endif // __wrappedlibxiTYPES32_H_
diff --git a/src/wrapped32/generated/wrappedlibxiundefs32.h b/src/wrapped32/generated/wrappedlibxiundefs32.h
new file mode 100644
index 00000000..6ae08459
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibxiundefs32.h
@@ -0,0 +1,8 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibxiUNDEFS32_H_
+#define __wrappedlibxiUNDEFS32_H_
+
+
+#endif // __wrappedlibxiUNDEFS32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index 59746725..593ffc65 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -437,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 (*vFXiL_t)(void*, int32_t, uintptr_t);
 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*);
@@ -602,6 +603,7 @@ typedef int32_t (*iFpbp_i_t)(void*, struct_p_t*, int32_t);
 typedef int32_t (*iFpbL_p_t)(void*, struct_L_t*, void*);
 typedef int32_t (*iFBp_LL_t)(struct_p_t*, uintptr_t, uintptr_t);
 typedef int32_t (*iFBp_pi_t)(struct_p_t*, void*, int32_t);
+typedef int32_t (*iFXibL__t)(void*, int32_t, struct_L_t*);
 typedef int32_t (*iFXLbp__t)(void*, uintptr_t, struct_p_t*);
 typedef int32_t (*iFXLbL__t)(void*, uintptr_t, struct_L_t*);
 typedef int32_t (*iFXbL_i_t)(void*, struct_L_t*, int32_t);
@@ -624,6 +626,7 @@ typedef int32_t (*iFXLbpp__t)(void*, uintptr_t, struct_pp_t*);
 typedef int32_t (*iFXbLC_i_t)(void*, struct_LC_t*, int32_t);
 typedef void (*vFLbL_bL__t)(uintptr_t, struct_L_t*, struct_L_t*);
 typedef int32_t (*iFXbiip_i_t)(void*, struct_iip_t*, int32_t);
+typedef int32_t (*iFXbLip_L_t)(void*, struct_Lip_t*, uintptr_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*);
@@ -722,6 +725,7 @@ typedef void (*vFppip_t)(void*, void*, int32_t, void*);
 typedef void (*vFppui_t)(void*, void*, uint32_t, int32_t);
 typedef void (*vFpppp_t)(void*, void*, void*, void*);
 typedef void (*vFXiiL_t)(void*, int32_t, int32_t, uintptr_t);
+typedef void (*vFXiLu_t)(void*, int32_t, uintptr_t, uint32_t);
 typedef void (*vFXLii_t)(void*, uintptr_t, int32_t, int32_t);
 typedef void (*vFXLLL_t)(void*, uintptr_t, uintptr_t, uintptr_t);
 typedef void (*vFXLLp_t)(void*, uintptr_t, uintptr_t, void*);
@@ -778,8 +782,10 @@ typedef int32_t (*iFpppL_t)(void*, void*, void*, uintptr_t);
 typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
 typedef int32_t (*iFSpiL_t)(void*, void*, int32_t, uintptr_t);
 typedef int32_t (*iFXiii_t)(void*, int32_t, int32_t, int32_t);
+typedef int32_t (*iFXiiL_t)(void*, int32_t, int32_t, uintptr_t);
 typedef int32_t (*iFXiip_t)(void*, int32_t, int32_t, void*);
 typedef int32_t (*iFXiuL_t)(void*, int32_t, uint32_t, uintptr_t);
+typedef int32_t (*iFXiLL_t)(void*, int32_t, uintptr_t, uintptr_t);
 typedef int32_t (*iFXipi_t)(void*, int32_t, void*, int32_t);
 typedef int32_t (*iFXipp_t)(void*, int32_t, void*, void*);
 typedef int32_t (*iFXWWW_t)(void*, uint16_t, uint16_t, uint16_t);
@@ -825,6 +831,7 @@ typedef void* (*pFEpip_t)(x64emu_t*, void*, int32_t, void*);
 typedef void* (*pFEppi_t)(x64emu_t*, void*, void*, int32_t);
 typedef void* (*pFEppp_t)(x64emu_t*, void*, void*, void*);
 typedef void* (*pFEXip_t)(x64emu_t*, void*, int32_t, void*);
+typedef void* (*pFEXLp_t)(x64emu_t*, void*, uintptr_t, void*);
 typedef void* (*pFEXpL_t)(x64emu_t*, void*, void*, uintptr_t);
 typedef void* (*pFEXpp_t)(x64emu_t*, void*, void*, void*);
 typedef void* (*pFiiiu_t)(int32_t, int32_t, int32_t, uint32_t);
@@ -990,6 +997,7 @@ typedef int32_t (*iFEXLip_t)(x64emu_t*, void*, uintptr_t, int32_t, void*);
 typedef int32_t (*iFEXLlp_t)(x64emu_t*, void*, uintptr_t, intptr_t, void*);
 typedef int32_t (*iFEXLpi_t)(x64emu_t*, void*, uintptr_t, void*, int32_t);
 typedef int32_t (*iFEXpLp_t)(x64emu_t*, void*, void*, uintptr_t, void*);
+typedef int32_t (*iFEXppu_t)(x64emu_t*, void*, void*, void*, uint32_t);
 typedef int32_t (*iFEXppp_t)(x64emu_t*, void*, void*, void*, void*);
 typedef int32_t (*iFiiipu_t)(int32_t, int32_t, int32_t, void*, uint32_t);
 typedef int32_t (*iFiiipp_t)(int32_t, int32_t, int32_t, void*, void*);
@@ -1009,6 +1017,8 @@ typedef int32_t (*iFpppLp_t)(void*, void*, void*, uintptr_t, void*);
 typedef int32_t (*iFppppp_t)(void*, void*, void*, void*, void*);
 typedef int32_t (*iFXiiii_t)(void*, int32_t, int32_t, int32_t, int32_t);
 typedef int32_t (*iFXiiip_t)(void*, int32_t, int32_t, int32_t, void*);
+typedef int32_t (*iFXiuLi_t)(void*, int32_t, uint32_t, uintptr_t, int32_t);
+typedef int32_t (*iFXiLip_t)(void*, int32_t, uintptr_t, int32_t, void*);
 typedef int32_t (*iFXiLuu_t)(void*, int32_t, uintptr_t, uint32_t, uint32_t);
 typedef int32_t (*iFXuuLL_t)(void*, uint32_t, uint32_t, uintptr_t, uintptr_t);
 typedef int32_t (*iFXLLii_t)(void*, uintptr_t, uintptr_t, int32_t, int32_t);
@@ -1153,6 +1163,7 @@ typedef int32_t (*iFuiiuup_t)(uint32_t, int32_t, int32_t, uint32_t, uint32_t, vo
 typedef int32_t (*iFpiippp_t)(void*, int32_t, int32_t, void*, void*, void*);
 typedef int32_t (*iFppiiii_t)(void*, void*, int32_t, int32_t, int32_t, int32_t);
 typedef int32_t (*iFXiiiii_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t);
+typedef int32_t (*iFXiiLip_t)(void*, int32_t, int32_t, uintptr_t, int32_t, void*);
 typedef int32_t (*iFXiippp_t)(void*, int32_t, int32_t, void*, void*, void*);
 typedef int32_t (*iFXuuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef int32_t (*iFXLiiiL_t)(void*, uintptr_t, int32_t, int32_t, int32_t, uintptr_t);
@@ -1186,6 +1197,7 @@ typedef int32_t (*iFXLiiibL__t)(void*, uintptr_t, int32_t, int32_t, int32_t, str
 typedef int32_t (*iFXLLLLbL__t)(void*, uintptr_t, uintptr_t, uintptr_t, uintptr_t, struct_L_t*);
 typedef int32_t (*iFXLbL_ipi_t)(void*, uintptr_t, struct_L_t*, int32_t, void*, int32_t);
 typedef int32_t (*iFXbL_upip_t)(void*, struct_L_t*, uint32_t, void*, int32_t, void*);
+typedef int32_t (*iFXbLip_uubLip_L_t)(void*, struct_Lip_t*, uint32_t, uint32_t, struct_Lip_t*, uintptr_t);
 typedef void (*vFbp_bppup_ippbp__t)(struct_p_t*, struct_ppup_t*, int32_t, void*, void*, struct_p_t*);
 typedef void (*vFiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef void (*vFiiiiuup_t)(int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
@@ -1273,6 +1285,7 @@ typedef void* (*pFEpLiiiI_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, int3
 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 (*iFXiLibiip_ip_t)(void*, int32_t, uintptr_t, int32_t, struct_iip_t*, int32_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);
 typedef int32_t (*iFXLpiibpiiL_i_t)(void*, uintptr_t, void*, int32_t, int32_t, struct_piiL_t*, int32_t);
@@ -1306,6 +1319,7 @@ typedef void (*vFuuuipipp_t)(uint32_t, uint32_t, uint32_t, int32_t, void*, int32
 typedef void (*vFuuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFuuufffff_t)(uint32_t, uint32_t, uint32_t, float, float, float, float, float);
 typedef void (*vFffffffff_t)(float, float, float, float, float, float, float, float);
+typedef void (*vFXiLLiipi_t)(void*, int32_t, uintptr_t, uintptr_t, int32_t, int32_t, void*, int32_t);
 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);
@@ -1366,6 +1380,8 @@ typedef uintptr_t (*LFXLiiuuuLL_t)(void*, uintptr_t, int32_t, int32_t, uint32_t,
 typedef void* (*pFEuiiiuuuu_t)(x64emu_t*, uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 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 (*iFXiLiiibiip_ip_t)(void*, int32_t, uintptr_t, int32_t, int32_t, int32_t, struct_iip_t*, int32_t, void*);
+typedef int32_t (*iFXiLLLiiibiip__t)(void*, int32_t, uintptr_t, uintptr_t, uintptr_t, int32_t, int32_t, int32_t, struct_iip_t*);
 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);
@@ -1389,10 +1405,13 @@ typedef void (*vFuffiiffiip_t)(uint32_t, float, float, int32_t, int32_t, float,
 typedef void (*vFuddiiddiip_t)(uint32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, void*);
 typedef void (*vFffffffffff_t)(float, float, float, float, float, float, float, float, float, float);
 typedef int32_t (*iFuiiiuuiiip_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, void*);
+typedef int32_t (*iFXiLLdduudd_t)(void*, int32_t, uintptr_t, uintptr_t, double, double, uint32_t, uint32_t, double, double);
 typedef int32_t (*iFXuuLiuiiLL_t)(void*, uint32_t, uint32_t, uintptr_t, int32_t, uint32_t, int32_t, int32_t, uintptr_t, uintptr_t);
 typedef int32_t (*iFXLLpiiuuii_t)(void*, uintptr_t, uintptr_t, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t);
 typedef void* (*pFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFXpuiipuuii_t)(void*, void*, uint32_t, int32_t, int32_t, void*, uint32_t, uint32_t, int32_t, int32_t);
+typedef int32_t (*iFXiiLiiibiip_ip_t)(void*, int32_t, int32_t, uintptr_t, int32_t, int32_t, int32_t, struct_iip_t*, int32_t, void*);
+typedef int32_t (*iFXiLLiiibiip_ip_t)(void*, int32_t, uintptr_t, uintptr_t, int32_t, int32_t, int32_t, struct_iip_t*, int32_t, void*);
 typedef void (*vFiiiiillliip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, intptr_t, intptr_t, intptr_t, int32_t, int32_t, void*);
 typedef void (*vFiiiiilllilp_t)(int32_t, int32_t, int32_t, int32_t, int32_t, intptr_t, intptr_t, intptr_t, int32_t, intptr_t, void*);
 typedef void (*vFuiiiiiiiuip_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t, void*);
@@ -1414,6 +1433,7 @@ typedef int32_t (*iFEXpLLiiLWpi_t)(x64emu_t*, void*, void*, uintptr_t, uintptr_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 int32_t (*iFXiiLLiiibiip_ip_t)(void*, int32_t, int32_t, uintptr_t, uintptr_t, int32_t, int32_t, int32_t, struct_iip_t*, int32_t, void*);
 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);
@@ -1811,6 +1831,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 vFXiL_32(x64emu_t *emu, uintptr_t fcn) { vFXiL_t fn = (vFXiL_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))); }
 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)); }
@@ -1976,6 +1997,7 @@ void iFpbp_i_32(x64emu_t *emu, uintptr_t fcn) { iFpbp_i_t fn = (iFpbp_i_t)fcn; s
 void iFpbL_p_32(x64emu_t *emu, uintptr_t fcn) { iFpbL_p_t fn = (iFpbL_p_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(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptriv(R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFBp_LL_32(x64emu_t *emu, uintptr_t fcn) { iFBp_LL_t fn = (iFBp_LL_t)fcn; struct_p_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12))); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void iFBp_pi_32(x64emu_t *emu, uintptr_t fcn) { iFBp_pi_t fn = (iFBp_pi_t)fcn; struct_p_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
+void iFXibL__32(x64emu_t *emu, uintptr_t fcn) { iFXibL__t fn = (iFXibL__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_ptri(int32_t, R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXLbp__32(x64emu_t *emu, uintptr_t fcn) { iFXLbp__t fn = (iFXLbp__t)fcn; struct_p_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_p(&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_p(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXLbL__32(x64emu_t *emu, uintptr_t fcn) { iFXLbL__t fn = (iFXLbL__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); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXbL_i_32(x64emu_t *emu, uintptr_t fcn) { iFXbL_i_t fn = (iFXbL_i_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, from_ptri(int32_t, R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
@@ -1998,6 +2020,7 @@ void iFXLbpp__32(x64emu_t *emu, uintptr_t fcn) { iFXLbpp__t fn = (iFXLbpp__t)fcn
 void iFXbLC_i_32(x64emu_t *emu, uintptr_t fcn) { iFXbLC_i_t fn = (iFXbLC_i_t)fcn; struct_LC_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_LC(&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, from_ptri(int32_t, R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LC(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void vFLbL_bL__32(x64emu_t *emu, uintptr_t fcn) { vFLbL_bL__t fn = (vFLbL_bL__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)))); 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)))); 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); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(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); }
 void iFXbiip_i_32(x64emu_t *emu, uintptr_t fcn) { iFXbiip_i_t fn = (iFXbiip_i_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, from_ptri(int32_t, R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
+void iFXbLip_L_32(x64emu_t *emu, uintptr_t fcn) { iFXbLip_L_t fn = (iFXbLip_L_t)fcn; struct_Lip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_Lip(&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, from_ulong(from_ptri(ulong_t, R_ESP + 12))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_Lip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 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); }
@@ -2096,6 +2119,7 @@ void vFppip_32(x64emu_t *emu, uintptr_t fcn) { vFppip_t fn = (vFppip_t)fcn; fn(f
 void vFppui_32(x64emu_t *emu, uintptr_t fcn) { vFppui_t fn = (vFppui_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void vFpppp_32(x64emu_t *emu, uintptr_t fcn) { vFpppp_t fn = (vFpppp_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void vFXiiL_32(x64emu_t *emu, uintptr_t fcn) { vFXiiL_t fn = (vFXiiL_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); }
+void vFXiLu_32(x64emu_t *emu, uintptr_t fcn) { vFXiLu_t fn = (vFXiLu_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_ptri(uint32_t, R_ESP + 16)); }
 void vFXLii_32(x64emu_t *emu, uintptr_t fcn) { vFXLii_t fn = (vFXLii_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)); }
 void vFXLLL_32(x64emu_t *emu, uintptr_t fcn) { vFXLLL_t fn = (vFXLLL_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))); }
 void vFXLLp_32(x64emu_t *emu, uintptr_t fcn) { vFXLLp_t fn = (vFXLLp_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_ptriv(R_ESP + 16)); }
@@ -2152,8 +2176,10 @@ void iFpppL_32(x64emu_t *emu, uintptr_t fcn) { iFpppL_t fn = (iFpppL_t)fcn; R_EA
 void iFpppp_32(x64emu_t *emu, uintptr_t fcn) { iFpppp_t fn = (iFpppp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iFSpiL_32(x64emu_t *emu, uintptr_t fcn) { iFSpiL_t fn = (iFSpiL_t)fcn; R_EAX = fn(io_convert32(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); }
 void iFXiii_32(x64emu_t *emu, uintptr_t fcn) { iFXiii_t fn = (iFXiii_t)fcn; 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)); }
+void iFXiiL_32(x64emu_t *emu, uintptr_t fcn) { iFXiiL_t fn = (iFXiiL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); }
 void iFXiip_32(x64emu_t *emu, uintptr_t fcn) { iFXiip_t fn = (iFXiip_t)fcn; R_EAX = 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 iFXiuL_32(x64emu_t *emu, uintptr_t fcn) { iFXiuL_t fn = (iFXiuL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); }
+void iFXiLL_32(x64emu_t *emu, uintptr_t fcn) { iFXiLL_t fn = (iFXiLL_t)fcn; R_EAX = 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))); }
 void iFXipi_32(x64emu_t *emu, uintptr_t fcn) { iFXipi_t fn = (iFXipi_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFXipp_32(x64emu_t *emu, uintptr_t fcn) { iFXipp_t fn = (iFXipp_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)); }
 void iFXWWW_32(x64emu_t *emu, uintptr_t fcn) { iFXWWW_t fn = (iFXWWW_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(uint16_t, R_ESP + 8), from_ptri(uint16_t, R_ESP + 12), from_ptri(uint16_t, R_ESP + 16)); }
@@ -2199,6 +2225,7 @@ void pFEpip_32(x64emu_t *emu, uintptr_t fcn) { pFEpip_t fn = (pFEpip_t)fcn; R_EA
 void pFEppi_32(x64emu_t *emu, uintptr_t fcn) { pFEppi_t fn = (pFEppi_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))); }
 void pFEppp_32(x64emu_t *emu, uintptr_t fcn) { pFEppp_t fn = (pFEppp_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12))); }
 void pFEXip_32(x64emu_t *emu, uintptr_t fcn) { pFEXip_t fn = (pFEXip_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))); }
+void pFEXLp_32(x64emu_t *emu, uintptr_t fcn) { pFEXLp_t fn = (pFEXLp_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12))); }
 void pFEXpL_32(x64emu_t *emu, uintptr_t fcn) { pFEXpL_t fn = (pFEXpL_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)))); }
 void pFEXpp_32(x64emu_t *emu, uintptr_t fcn) { pFEXpp_t fn = (pFEXpp_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12))); }
 void pFiiiu_32(x64emu_t *emu, uintptr_t fcn) { pFiiiu_t fn = (pFiiiu_t)fcn; R_EAX = to_ptrv(fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16))); }
@@ -2364,6 +2391,7 @@ void iFEXLip_32(x64emu_t *emu, uintptr_t fcn) { iFEXLip_t fn = (iFEXLip_t)fcn; R
 void iFEXLlp_32(x64emu_t *emu, uintptr_t fcn) { iFEXLlp_t fn = (iFEXLlp_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_long(from_ptri(long_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); }
 void iFEXLpi_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpi_t fn = (iFEXLpi_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_ptri(int32_t, R_ESP + 16)); }
 void iFEXpLp_32(x64emu_t *emu, uintptr_t fcn) { iFEXpLp_t fn = (iFEXpLp_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_ptriv(R_ESP + 16)); }
+void iFEXppu_32(x64emu_t *emu, uintptr_t fcn) { iFEXppu_t fn = (iFEXppu_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
 void iFEXppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXppp_t fn = (iFEXppp_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iFiiipu_32(x64emu_t *emu, uintptr_t fcn) { iFiiipu_t fn = (iFiiipu_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(uint32_t, R_ESP + 20)); }
 void iFiiipp_32(x64emu_t *emu, uintptr_t fcn) { iFiiipp_t fn = (iFiiipp_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); }
@@ -2383,6 +2411,8 @@ void iFpppLp_32(x64emu_t *emu, uintptr_t fcn) { iFpppLp_t fn = (iFpppLp_t)fcn; R
 void iFppppp_32(x64emu_t *emu, uintptr_t fcn) { iFppppp_t fn = (iFppppp_t)fcn; R_EAX = fn(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)); }
 void iFXiiii_32(x64emu_t *emu, uintptr_t fcn) { iFXiiii_t fn = (iFXiiii_t)fcn; 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), from_ptri(int32_t, R_ESP + 20)); }
 void iFXiiip_32(x64emu_t *emu, uintptr_t fcn) { iFXiiip_t fn = (iFXiiip_t)fcn; 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), from_ptriv(R_ESP + 20)); }
+void iFXiuLi_32(x64emu_t *emu, uintptr_t fcn) { iFXiuLi_t fn = (iFXiuLi_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20)); }
+void iFXiLip_32(x64emu_t *emu, uintptr_t fcn) { iFXiLip_t fn = (iFXiLip_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); }
 void iFXiLuu_32(x64emu_t *emu, uintptr_t fcn) { iFXiLuu_t fn = (iFXiLuu_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, 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)); }
 void iFXuuLL_32(x64emu_t *emu, uintptr_t fcn) { iFXuuLL_t fn = (iFXuuLL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ulong(from_ptri(ulong_t, R_ESP + 20))); }
 void iFXLLii_32(x64emu_t *emu, uintptr_t fcn) { iFXLLii_t fn = (iFXLLii_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_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20)); }
@@ -2527,6 +2557,7 @@ void iFuiiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiiuup_t fn = (iFuiiuup_t)fcn
 void iFpiippp_32(x64emu_t *emu, uintptr_t fcn) { iFpiippp_t fn = (iFpiippp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
 void iFppiiii_32(x64emu_t *emu, uintptr_t fcn) { iFppiiii_t fn = (iFppiiii_t)fcn; R_EAX = fn(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_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
 void iFXiiiii_32(x64emu_t *emu, uintptr_t fcn) { iFXiiiii_t fn = (iFXiiiii_t)fcn; 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), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); }
+void iFXiiLip_32(x64emu_t *emu, uintptr_t fcn) { iFXiiLip_t fn = (iFXiiLip_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20), from_ptriv(R_ESP + 24)); }
 void iFXiippp_32(x64emu_t *emu, uintptr_t fcn) { iFXiippp_t fn = (iFXiippp_t)fcn; R_EAX = 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), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
 void iFXuuuuu_32(x64emu_t *emu, uintptr_t fcn) { iFXuuuuu_t fn = (iFXuuuuu_t)fcn; R_EAX = fn(getDisplay(from_ptriv(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)); }
 void iFXLiiiL_32(x64emu_t *emu, uintptr_t fcn) { iFXLiiiL_t fn = (iFXLiiiL_t)fcn; 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(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24))); }
@@ -2560,6 +2591,7 @@ void iFXLiiibL__32(x64emu_t *emu, uintptr_t fcn) { iFXLiiibL__t fn = (iFXLiiibL_
 void iFXLLLLbL__32(x64emu_t *emu, uintptr_t fcn) { iFXLLLLbL__t fn = (iFXLLLLbL__t)fcn; 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_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ulong(from_ptri(ulong_t, R_ESP + 20)), *(ptr_t*)(from_ptr((R_ESP + 24))) ? &arg_24 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 24)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); }
 void iFXLbL_ipi_32(x64emu_t *emu, uintptr_t fcn) { iFXLbL_ipi_t fn = (iFXLbL_ipi_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_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXbL_upip_32(x64emu_t *emu, uintptr_t fcn) { iFXbL_upip_t fn = (iFXbL_upip_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, from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptriv(R_ESP + 24)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
+void iFXbLip_uubLip_L_32(x64emu_t *emu, uintptr_t fcn) { iFXbLip_uubLip_L_t fn = (iFXbLip_uubLip_L_t)fcn; struct_Lip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_Lip(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_Lip_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_Lip(&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(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 24))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_Lip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_Lip(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void vFbp_bppup_ippbp__32(x64emu_t *emu, uintptr_t fcn) { vFbp_bppup_ippbp__t fn = (vFbp_bppup_ippbp__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_ppup_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_ppup(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_p_t arg_24={0}; if (*(ptr_t*)(from_ptr((R_ESP + 24)))) from_struct_p(&arg_24, *(ptr_t*)(from_ptr((R_ESP + 24)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), *(ptr_t*)(from_ptr((R_ESP + 24))) ? &arg_24 : 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 + 8)))) to_struct_ppup(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 24)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); }
 void vFiiiiiip_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiip_t fn = (vFiiiiiip_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_ptriv(R_ESP + 28)); }
 void vFiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiuup_t fn = (vFiiiiuup_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(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptriv(R_ESP + 28)); }
@@ -2647,6 +2679,7 @@ void pFEpLiiiI_32(x64emu_t *emu, uintptr_t fcn) { pFEpLiiiI_t fn = (pFEpLiiiI_t)
 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 iFXiLibiip_ip_32(x64emu_t *emu, uintptr_t fcn) { iFXiLibiip_ip_t fn = (iFXiLibiip_ip_t)fcn; struct_iip_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_iip(&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_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL, from_ptri(int32_t, R_ESP + 24), from_ptriv(R_ESP + 28)); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_iip(*(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); }
 void iFXLpiibpiiL_i_32(x64emu_t *emu, uintptr_t fcn) { iFXLpiibpiiL_i_t fn = (iFXLpiibpiiL_i_t)fcn; struct_piiL_t arg_24={0}; if (*(ptr_t*)(from_ptr((R_ESP + 24)))) from_struct_piiL(&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_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_piiL(*(ptr_t*)(from_ptr((R_ESP + 24))), &arg_24); }
@@ -2680,6 +2713,7 @@ void vFuuuipipp_32(x64emu_t *emu, uintptr_t fcn) { vFuuuipipp_t fn = (vFuuuipipp
 void vFuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuu_t fn = (vFuuuuuuuu_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)); }
 void vFuuufffff_32(x64emu_t *emu, uintptr_t fcn) { vFuuufffff_t fn = (vFuuufffff_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(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 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 vFXiLLiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLiipi_t fn = (vFXiLLiipi_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_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 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)); }
@@ -2740,6 +2774,8 @@ void LFXLiiuuuLL_32(x64emu_t *emu, uintptr_t fcn) { LFXLiiuuuLL_t fn = (LFXLiiuu
 void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fcn) { pFEuiiiuuuu_t fn = (pFEuiiiuuuu_t)fcn; R_EAX = to_ptrv(fn(emu, 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(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))); }
 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 iFXiLiiibiip_ip_32(x64emu_t *emu, uintptr_t fcn) { iFXiLiiibiip_ip_t fn = (iFXiLiiibiip_ip_t)fcn; struct_iip_t arg_28={0}; if (*(ptr_t*)(from_ptr((R_ESP + 28)))) from_struct_iip(&arg_28, *(ptr_t*)(from_ptr((R_ESP + 28)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_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, from_ptri(int32_t, R_ESP + 32), from_ptriv(R_ESP + 36)); if (*(ptr_t*)(from_ptr((R_ESP + 28)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 28))), &arg_28); }
+void iFXiLLLiiibiip__32(x64emu_t *emu, uintptr_t fcn) { iFXiLLLiiibiip__t fn = (iFXiLLLiiibiip__t)fcn; struct_iip_t arg_36={0}; if (*(ptr_t*)(from_ptr((R_ESP + 36)))) from_struct_iip(&arg_36, *(ptr_t*)(from_ptr((R_ESP + 36)))); R_EAX = 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_ulong(from_ptri(ulong_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); if (*(ptr_t*)(from_ptr((R_ESP + 36)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 36))), &arg_36); }
 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); }
@@ -2763,10 +2799,13 @@ void vFuffiiffiip_32(x64emu_t *emu, uintptr_t fcn) { vFuffiiffiip_t fn = (vFuffi
 void vFuddiiddiip_32(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiip_t fn = (vFuddiiddiip_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_ptriv(R_ESP + 56)); }
 void vFffffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFffffffffff_t fn = (vFffffffffff_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)); }
 void iFuiiiuuiiip_32(x64emu_t *emu, uintptr_t fcn) { iFuiiiuuiiip_t fn = (iFuiiiuuiiip_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(uint32_t, R_ESP + 20), from_ptri(uint32_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)); }
+void iFXiLLdduudd_32(x64emu_t *emu, uintptr_t fcn) { iFXiLLdduudd_t fn = (iFXiLLdduudd_t)fcn; R_EAX = 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_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(double, R_ESP + 44), from_ptri(double, R_ESP + 52)); }
 void iFXuuLiuiiLL_32(x64emu_t *emu, uintptr_t fcn) { iFXuuLiuiiLL_t fn = (iFXuuLiuiiLL_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ulong(from_ptri(ulong_t, R_ESP + 36)), from_ulong(from_ptri(ulong_t, R_ESP + 40))); }
 void iFXLLpiiuuii_32(x64emu_t *emu, uintptr_t fcn) { iFXLLpiiuuii_t fn = (iFXLLpiiuuii_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)); }
 void pFpppppppppp_32(x64emu_t *emu, uintptr_t fcn) { pFpppppppppp_t fn = (pFpppppppppp_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), 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))); }
 void pFXpuiipuuii_32(x64emu_t *emu, uintptr_t fcn) { pFXpuiipuuii_t fn = (pFXpuiipuuii_t)fcn; R_EAX = to_ptrv(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_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 iFXiiLiiibiip_ip_32(x64emu_t *emu, uintptr_t fcn) { iFXiiLiiibiip_ip_t fn = (iFXiiLiiibiip_ip_t)fcn; struct_iip_t arg_32={0}; if (*(ptr_t*)(from_ptr((R_ESP + 32)))) from_struct_iip(&arg_32, *(ptr_t*)(from_ptr((R_ESP + 32)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_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_ptri(int32_t, R_ESP + 28), *(ptr_t*)(from_ptr((R_ESP + 32))) ? &arg_32 : NULL, from_ptri(int32_t, R_ESP + 36), from_ptriv(R_ESP + 40)); if (*(ptr_t*)(from_ptr((R_ESP + 32)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 32))), &arg_32); }
+void iFXiLLiiibiip_ip_32(x64emu_t *emu, uintptr_t fcn) { iFXiLLiiibiip_ip_t fn = (iFXiLLiiibiip_ip_t)fcn; struct_iip_t arg_32={0}; if (*(ptr_t*)(from_ptr((R_ESP + 32)))) from_struct_iip(&arg_32, *(ptr_t*)(from_ptr((R_ESP + 32)))); R_EAX = 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_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), *(ptr_t*)(from_ptr((R_ESP + 32))) ? &arg_32 : NULL, from_ptri(int32_t, R_ESP + 36), from_ptriv(R_ESP + 40)); if (*(ptr_t*)(from_ptr((R_ESP + 32)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 32))), &arg_32); }
 void vFiiiiillliip_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiillliip_t fn = (vFiiiiillliip_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_long(from_ptri(long_t, R_ESP + 24)), from_long(from_ptri(long_t, R_ESP + 28)), from_long(from_ptri(long_t, R_ESP + 32)), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptriv(R_ESP + 44)); }
 void vFiiiiilllilp_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiilllilp_t fn = (vFiiiiilllilp_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_long(from_ptri(long_t, R_ESP + 24)), from_long(from_ptri(long_t, R_ESP + 28)), from_long(from_ptri(long_t, R_ESP + 32)), from_ptri(int32_t, R_ESP + 36), from_long(from_ptri(long_t, R_ESP + 40)), from_ptriv(R_ESP + 44)); }
 void vFuiiiiiiiuip_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiuip_t fn = (vFuiiiiiiiuip_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(int32_t, R_ESP + 40), from_ptriv(R_ESP + 44)); }
@@ -2788,6 +2827,7 @@ void iFEXpLLiiLWpi_32(x64emu_t *emu, uintptr_t fcn) { iFEXpLLiiLWpi_t fn = (iFEX
 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 iFXiiLLiiibiip_ip_32(x64emu_t *emu, uintptr_t fcn) { iFXiiLLiiibiip_ip_t fn = (iFXiiLLiiibiip_ip_t)fcn; struct_iip_t arg_36={0}; if (*(ptr_t*)(from_ptr((R_ESP + 36)))) from_struct_iip(&arg_36, *(ptr_t*)(from_ptr((R_ESP + 36)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ulong(from_ptri(ulong_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, from_ptri(int32_t, R_ESP + 40), from_ptriv(R_ESP + 44)); if (*(ptr_t*)(from_ptr((R_ESP + 36)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 36))), &arg_36); }
 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)); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index 782c8ace..49078aac 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -388,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 vFXiL_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);
@@ -553,6 +554,7 @@ void iFpbp_i_32(x64emu_t *emu, uintptr_t fnc);
 void iFpbL_p_32(x64emu_t *emu, uintptr_t fnc);
 void iFBp_LL_32(x64emu_t *emu, uintptr_t fnc);
 void iFBp_pi_32(x64emu_t *emu, uintptr_t fnc);
+void iFXibL__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbp__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbL__32(x64emu_t *emu, uintptr_t fnc);
 void iFXbL_i_32(x64emu_t *emu, uintptr_t fnc);
@@ -575,6 +577,7 @@ void iFXLbpp__32(x64emu_t *emu, uintptr_t fnc);
 void iFXbLC_i_32(x64emu_t *emu, uintptr_t fnc);
 void vFLbL_bL__32(x64emu_t *emu, uintptr_t fnc);
 void iFXbiip_i_32(x64emu_t *emu, uintptr_t fnc);
+void iFXbLip_L_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);
@@ -673,6 +676,7 @@ void vFppip_32(x64emu_t *emu, uintptr_t fnc);
 void vFppui_32(x64emu_t *emu, uintptr_t fnc);
 void vFpppp_32(x64emu_t *emu, uintptr_t fnc);
 void vFXiiL_32(x64emu_t *emu, uintptr_t fnc);
+void vFXiLu_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLii_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLLL_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLLp_32(x64emu_t *emu, uintptr_t fnc);
@@ -729,8 +733,10 @@ void iFpppL_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFSpiL_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiii_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiiL_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiip_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiuL_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiLL_32(x64emu_t *emu, uintptr_t fnc);
 void iFXipi_32(x64emu_t *emu, uintptr_t fnc);
 void iFXipp_32(x64emu_t *emu, uintptr_t fnc);
 void iFXWWW_32(x64emu_t *emu, uintptr_t fnc);
@@ -776,6 +782,7 @@ void pFEpip_32(x64emu_t *emu, uintptr_t fnc);
 void pFEppi_32(x64emu_t *emu, uintptr_t fnc);
 void pFEppp_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXip_32(x64emu_t *emu, uintptr_t fnc);
+void pFEXLp_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXpL_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXpp_32(x64emu_t *emu, uintptr_t fnc);
 void pFiiiu_32(x64emu_t *emu, uintptr_t fnc);
@@ -941,6 +948,7 @@ void iFEXLip_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLlp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLpi_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXpLp_32(x64emu_t *emu, uintptr_t fnc);
+void iFEXppu_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFiiipu_32(x64emu_t *emu, uintptr_t fnc);
 void iFiiipp_32(x64emu_t *emu, uintptr_t fnc);
@@ -960,6 +968,8 @@ void iFpppLp_32(x64emu_t *emu, uintptr_t fnc);
 void iFppppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiiii_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiiip_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiuLi_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiLip_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiLuu_32(x64emu_t *emu, uintptr_t fnc);
 void iFXuuLL_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLLii_32(x64emu_t *emu, uintptr_t fnc);
@@ -1104,6 +1114,7 @@ void iFuiiuup_32(x64emu_t *emu, uintptr_t fnc);
 void iFpiippp_32(x64emu_t *emu, uintptr_t fnc);
 void iFppiiii_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiiiii_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiiLip_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiippp_32(x64emu_t *emu, uintptr_t fnc);
 void iFXuuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLiiiL_32(x64emu_t *emu, uintptr_t fnc);
@@ -1137,6 +1148,7 @@ void iFXLiiibL__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLLLLbL__32(x64emu_t *emu, uintptr_t fnc);
 void iFXLbL_ipi_32(x64emu_t *emu, uintptr_t fnc);
 void iFXbL_upip_32(x64emu_t *emu, uintptr_t fnc);
+void iFXbLip_uubLip_L_32(x64emu_t *emu, uintptr_t fnc);
 void vFbp_bppup_ippbp__32(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiip_32(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiuup_32(x64emu_t *emu, uintptr_t fnc);
@@ -1224,6 +1236,7 @@ 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 iFXiLibiip_ip_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);
 void iFXLpiibpiiL_i_32(x64emu_t *emu, uintptr_t fnc);
@@ -1257,6 +1270,7 @@ void vFuuuipipp_32(x64emu_t *emu, uintptr_t fnc);
 void vFuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void vFuuufffff_32(x64emu_t *emu, uintptr_t fnc);
 void vFffffffff_32(x64emu_t *emu, uintptr_t fnc);
+void vFXiLLiipi_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);
@@ -1317,6 +1331,8 @@ void LFXLiiuuuLL_32(x64emu_t *emu, uintptr_t fnc);
 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 iFXiLiiibiip_ip_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiLLLiiibiip__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);
@@ -1340,10 +1356,13 @@ void vFuffiiffiip_32(x64emu_t *emu, uintptr_t fnc);
 void vFuddiiddiip_32(x64emu_t *emu, uintptr_t fnc);
 void vFffffffffff_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiiiuuiiip_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiLLdduudd_32(x64emu_t *emu, uintptr_t fnc);
 void iFXuuLiuiiLL_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLLpiiuuii_32(x64emu_t *emu, uintptr_t fnc);
 void pFpppppppppp_32(x64emu_t *emu, uintptr_t fnc);
 void pFXpuiipuuii_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiiLiiibiip_ip_32(x64emu_t *emu, uintptr_t fnc);
+void iFXiLLiiibiip_ip_32(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiillliip_32(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiilllilp_32(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiuip_32(x64emu_t *emu, uintptr_t fnc);
@@ -1365,6 +1384,7 @@ 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 iFXiiLLiiibiip_ip_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);
diff --git a/src/wrapped32/wrappedlibxi.c b/src/wrapped32/wrappedlibxi.c
new file mode 100644
index 00000000..16bfab07
--- /dev/null
+++ b/src/wrapped32/wrappedlibxi.c
@@ -0,0 +1,168 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "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* libxiName = "libXi.so";
+#else
+    static const char* libxiName = "libXi.so.6";
+#endif
+
+#define LIBNAME libxi
+
+#ifdef ANDROID
+#define NEEDED_LIBS "libX11.so", "libXext.so"
+#else
+#define NEEDED_LIBS "libX11.so.6", "libXext.so.6"
+#endif
+
+#include "libtools/my_x11_defs.h"
+#include "libtools/my_x11_defs_32.h"
+
+#include "generated/wrappedlibxitypes32.h"
+
+#include "wrappercallback32.h"
+
+void inplace_XIDeviceInfo_shrink(void* a, int n)
+{
+    if(!a || !n) return;
+    my_XIDeviceInfo_32_t* dst = a;
+    my_XIDeviceInfo_t* src = a;
+
+    for(int i=0; i<n; ++i, ++src, ++dst) {
+        dst->deviceid = src->deviceid;
+        dst->name = to_ptrv(src->name);
+        dst->use = src->use;
+        dst->attachment = src->attachment;
+        dst->enabled = src->enabled;
+        for(int j=0; j<src->num_classes; ++j)
+            ((ptr_t*)src->classes)[j] = to_ptrv(src->classes[j]);
+        dst->num_classes = src->num_classes;
+        dst->classes = to_ptrv(src->classes);
+    }
+    // mark last record, even on only 1 record, thos last 2 uint32_t are free
+    dst->deviceid = 0;
+    dst->name = 0;
+}
+
+int inplace_XIDeviceInfo_enlarge(void* a)
+{
+    if(!a) return 0;
+    my_XIDeviceInfo_t* dst = a;
+    my_XIDeviceInfo_32_t* src = a;
+    int n = 0;
+    while(src[n].deviceid && src[n].name) ++n;
+    src+=n-1;
+    dst+=n-1;
+    for(int i=n-1; i>=0; --i, --src, --dst) {
+        dst->classes = from_ptrv(src->classes);
+        dst->num_classes = src->num_classes;
+        dst->enabled = src->enabled;
+        dst->attachment = src->attachment;
+        dst->use = src->use;
+        dst->name = from_ptrv(src->name);
+        dst->deviceid = src->deviceid;
+        for(int j=dst->num_classes-1; j>=0; --j)
+            dst->classes[j] = from_ptrv(((ptr_t*)dst->classes)[j]);
+    }
+    return n;
+}
+
+EXPORT void* my32_XIQueryDevice(x64emu_t* emu, void* dpy, int deviceid, int* ndevices)
+{
+    void* ret = my->XIQueryDevice(dpy, deviceid, ndevices);
+    inplace_XIDeviceInfo_shrink(ret, *ndevices);
+    return ret;
+}
+
+EXPORT void my32_XIFreeDeviceInfo(x64emu_t* emu, void* d)
+{
+    inplace_XIDeviceInfo_enlarge(d);
+    my->XIFreeDeviceInfo(d);
+}
+
+EXPORT int my32_XISelectEvents(x64emu_t* emu, void* dpy, XID window, my_XIEventMask_32_t* masks, int num)
+{
+    my_XIEventMask_t masks_l[num];
+    for(int i=0; i<num; ++i) {
+        masks_l[i].deviceid = masks[i].deviceid;
+        masks_l[i].mask_len = masks[i].mask_len;
+        masks_l[i].mask = from_ptrv(masks[i].mask);
+    }
+    return my->XISelectEvents(dpy, window, masks_l, num);
+}
+
+EXPORT void* my32_XIGetSelectedEvents(x64emu_t* emu, void* dpy, XID window, int* num)
+{
+    void* ret = my->XIGetSelectedEvents(dpy, window, num);
+    if(!ret) return NULL;
+    //inplace shrink
+    my_XIEventMask_t* src = ret;
+    my_XIEventMask_32_t* dst = ret;
+    for(int i=0; i<*num; ++i, ++src, ++dst) {
+        dst->deviceid = src->deviceid;
+        dst->mask_len = src->mask_len;
+        dst->mask = to_ptrv(src->mask);
+    }
+    return ret;
+}
+
+void inplace_XDevice_shrink(void* a)
+{
+    if(!a) return;
+    my_XDevice_t* src = a;
+    my_XDevice_32_t* dst = a;
+
+    dst->device_id = src->device_id;
+    dst->num_classes = src->num_classes;
+    dst->classes = to_ptrv(src->classes);
+}
+void inplace_XDevice_enlarge(void* a)
+{
+    if(!a) return;
+    my_XDevice_32_t* src = a;
+    my_XDevice_t* dst = a;
+
+    dst->classes = from_ptrv(src->classes);
+    dst->num_classes = src->num_classes;
+    dst->device_id = src->device_id;
+}
+
+EXPORT void* my32_XOpenDevice(x64emu_t* emu, void* dpy, XID id)
+{
+    void* ret = my->XOpenDevice(dpy, id);
+    inplace_XDevice_shrink(ret);
+    return ret;
+}
+
+EXPORT int my32_XCloseDevice(x64emu_t* emu, void* dpy, void* d)
+{
+    inplace_XDevice_enlarge(d);
+    return my->XCloseDevice(dpy, d);
+}
+
+EXPORT int my32_XGetDeviceButtonMapping(x64emu_t* emu, void* dpy, void* d, void* map, int nmap)
+{
+    inplace_XDevice_enlarge(d);
+    return my->XGetDeviceButtonMapping(dpy, d, map, nmap);
+    inplace_XDevice_shrink(d);
+}
+
+
+#include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedlibxi_private.h b/src/wrapped32/wrappedlibxi_private.h
new file mode 100644
index 00000000..bf3614ce
--- /dev/null
+++ b/src/wrapped32/wrappedlibxi_private.h
@@ -0,0 +1,88 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh...
+#endif
+
+//GO(XAllowDeviceEvents, iFXbLip_iL)
+//GO(XChangeDeviceControl, iFXbLip_ibLi_)
+//GO(XChangeDeviceDontPropagateList, iFXLibL_i)
+//GO(XChangeDeviceKeyMapping, iFXbLip_iibL_i)
+//GO(XChangeDeviceProperty, vFXbLip_LLiipi)
+//GO(XChangeFeedbackControl, iFXbLip_LbLiL_)
+//GO(XChangeKeyboardDevice, iFXbLip_)
+//GO(XChangePointerDevice, iFXbLip_ii)
+GOM(XCloseDevice, iFEXp)
+//GO(XDeleteDeviceProperty, vFXbLip_L)
+//GO(XDeviceBell, iFXbLip_LLi)
+//GO(XFreeDeviceControl, vFbLi_)
+//GO(XFreeDeviceList, vFbLLpiibLi__)
+//GO(XFreeDeviceMotionEvents, vFbLp_)
+//GO(XFreeDeviceState, vFbLip_)
+//GO(XFreeFeedbackList, vFbLiL_)
+GOM(XGetDeviceButtonMapping, iFEXppu)
+//GO(XGetDeviceControl, bLi_FXbLip_i)
+//GO(XGetDeviceDontPropagateList, bL_FXLp)
+//GO(XGetDeviceFocus, iFXbLip_bL_pbL_)
+//GO(XGetDeviceKeyMapping, bL_FXbLip_Cip)
+//GO(XGetDeviceModifierMapping, bip_FXbLip_)
+//GO(XGetDeviceMotionEvents, bLp_FXbLip_LLppp)
+//GO(XGetDeviceProperty, iFXbLip_LlliLbL_pbL_bL_bp_)
+GO(XGetExtensionVersion, pFXp)
+//GO(XGetFeedbackControl, bLiL_FXbLip_p)
+//GO(XGetSelectedExtensionEvents, iFXLpbbL__pbbL__)
+//GO(XGrabDevice, iFXbLip_LiibL_iiL)
+//GO(XGrabDeviceButton, iFXbLip_uubLip_LiubL_ii)
+//GO(XGrabDeviceKey, iFXbLip_uubLip_LiubL_ii)
+GO(XIAllowEvents, iFXiiL)
+GO(XIAllowTouchEvents, iFXiuLi)
+GO(XIBarrierReleasePointer, vFXiLu)
+//GO(XIBarrierReleasePointers, vFXbiLu_i)
+//GO(XIChangeHierarchy, iFppi)
+GO(XIChangeProperty, vFXiLLiipi)
+GO(XIDefineCursor, iFXiLL)
+GO(XIDeleteProperty, vFXiL)
+GOM(XIFreeDeviceInfo, vFEp)
+GO(XIGetClientPointer, iFXLp)
+GO(XIGetFocus, iFXibL_)
+//GO(XIGetProperty, iFXiLlliLbL_pbL_bL_bp_)
+GOM(XIGetSelectedEvents, pFEXLp)
+GO(XIGrabButton, iFXiiLLiiibiip_ip)
+GO(XIGrabDevice, iFXiLLLiiibiip_)
+GO(XIGrabEnter, iFXiLLiiibiip_ip)
+GO(XIGrabFocusIn, iFXiLiiibiip_ip)
+GO(XIGrabKeycode, iFXiiLiiibiip_ip)
+GO(XIGrabTouchBegin, iFXiLibiip_ip)
+//GO(XIListProperties, bL_FXip)
+GOM(XIQueryDevice, pFEXip)
+//GO(XIQueryPointer, iFXiLbL_bL_ppppbip_pp)
+GO(XIQueryVersion, iFXpp)
+GOM(XISelectEvents, iFEXLpi)
+GO(XISetClientPointer, iFXLi)
+GO(XISetFocus, iFXiLL)
+GO(XIUndefineCursor, iFXiL)
+GO(XIUngrabButton, iFXiiLip)
+GO(XIUngrabDevice, iFXiL)
+GO(XIUngrabEnter, iFXiLip)
+GO(XIUngrabFocusIn, iFXiLip)
+GO(XIUngrabKeycode, iFXiiLip)
+GO(XIUngrabTouchBegin, iFXiLip)
+GO(XIWarpPointer, iFXiLLdduudd)
+//GO(XListDeviceProperties, bL_FXbLip_p)
+//GO(XListInputDevices, bLLpiibLi__FXp)
+GOM(XOpenDevice, pFEXL)
+//GO(XQueryDeviceState, bLip_FXbLip_)
+//GO(XSelectExtensionEvent, iFXLbL_i)
+//GO(XSendExtensionEvent, iFppLiipp)
+//GO(XSetDeviceButtonMapping, iFXbLip_pi)
+//GO(XSetDeviceFocus, iFXbLip_LiL)
+//GO(XSetDeviceMode, iFXbLip_i)
+//GO(XSetDeviceModifierMapping, iFXbLip_bip_)
+//GO(XSetDeviceValuators, iFXbLip_pii)
+GO(XUngrabDevice, iFXbLip_L)
+GO(XUngrabDeviceButton, iFXbLip_uubLip_L)
+GO(XUngrabDeviceKey, iFXbLip_uubLip_L)
+GO(_XiGetDevicePresenceNotifyEvent, iFX)
+GO(_xibadclass, vFXp)
+GO(_xibaddevice, vFXp)
+GO(_xibadevent, vFXp)
+GO(_xibadmode, vFXp)
+GO(_xidevicebusy, vFXp)