about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-12-13 16:05:50 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-12-13 16:05:50 +0100
commit059dc12adc1c61122ff298b98f922d7f9a042fe0 (patch)
treec5fbcd8e16977a80952111b368d8f32e25b282e8 /src
parent610c63cd151cdc0ea7712db5eebf0ed56f56da4e (diff)
downloadbox64-059dc12adc1c61122ff298b98f922d7f9a042fe0.tar.gz
box64-059dc12adc1c61122ff298b98f922d7f9a042fe0.zip
[BOX32][WRAPPER] Added 32bits wrapped libdrm with new wrapperhelper
Diffstat (limited to 'src')
-rw-r--r--src/library_list_32.h2
-rw-r--r--src/wrapped32/generated/functions_list.txt46
-rw-r--r--src/wrapped32/generated/wrappedlibdrmdefs32.h8
-rw-r--r--src/wrapped32/generated/wrappedlibdrmtypes32.h21
-rw-r--r--src/wrapped32/generated/wrappedlibdrmundefs32.h8
-rw-r--r--src/wrapped32/generated/wrapper32.c82
-rw-r--r--src/wrapped32/generated/wrapper32.h41
-rw-r--r--src/wrapped32/wrappedlibdrm.c107
-rw-r--r--src/wrapped32/wrappedlibdrm_private.h199
9 files changed, 514 insertions, 0 deletions
diff --git a/src/library_list_32.h b/src/library_list_32.h
index a89f99ee..2adf7777 100644
--- a/src/library_list_32.h
+++ b/src/library_list_32.h
@@ -73,6 +73,8 @@ GO("libudev.so", udev1)
 GO("libuuid.so.1", libuuid)
 GO("libcairo.so.2", cairo)
 GO("libcairo.so", cairo)
+GO("libdrm.so.2", libdrm)
+GO("libdrm.so", libdrm)
 
 GO("crashhandler.so", crashhandler)
 GO("libtcmalloc_minimal.so.0", tcmallocminimal)
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index 9be1ed9d..9bd5d433 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -92,6 +92,7 @@
 #() lFX -> lFX
 #() LEv -> LEv
 #() LFv -> LFv
+#() LFi -> LFi
 #() LEL -> LEL
 #() LEp -> LEp
 #() LFp -> LFp
@@ -195,6 +196,7 @@
 #() iEiu -> iEiu
 #() iFiu -> iFiu
 #() iEil -> iEil
+#() iFiL -> iFiL
 #() iEip -> iEip
 #() iFip -> iFip
 #() iEiS -> iEiS
@@ -477,16 +479,25 @@
 #() iFEXp -> iFEXp
 #() iEiii -> iEiii
 #() iEiiI -> iEiiI
+#() iFiiu -> iFiiu
 #() iEiil -> iEiil
 #() iEiip -> iEiip
 #() iFiip -> iFiip
 #() iEiiO -> iEiiO
 #() iEiII -> iEiII
+#() iFiui -> iFiui
 #() iEiuu -> iEiuu
+#() iFiuu -> iFiuu
+#() iFiuL -> iFiuL
 #() iEiup -> iEiup
+#() iFiup -> iFiup
+#() iFiUU -> iFiUU
+#() iFiUp -> iFiUp
+#() iFidd -> iFidd
 #() iEill -> iEill
 #() iEiLi -> iEiLi
 #() iEiLp -> iEiLp
+#() iFiLp -> iFiLp
 #() iFipi -> iFipi
 #() iEipi -> iEipi
 #() iEipu -> iEipu
@@ -863,12 +874,21 @@
 #() iEiiiN -> iEiiiN
 #() iEiiII -> iEiiII
 #() iEiIIi -> iEiIIi
+#() iFiuii -> iFiuii
+#() iFiuuU -> iFiuuU
+#() iFiuup -> iFiuup
+#() iFiupu -> iFiupu
+#() iFiupp -> iFiupp
 #() iEilli -> iEilli
+#() iFiLpL -> iFiLpL
 #() iEipii -> iEipii
 #() iEipip -> iEipip
 #() iEipui -> iEipui
 #() iEipup -> iEipup
+#() iFipup -> iFipup
+#() iFipLp -> iFipLp
 #() iEippi -> iEippi
+#() iFippu -> iFippu
 #() iEippL -> iEippL
 #() iFippp -> iFippp
 #() iEipON -> iEipON
@@ -885,6 +905,7 @@
 #() iFpCCC -> iFpCCC
 #() iFpWWu -> iFpWWu
 #() iEpuiL -> iEpuiL
+#() iFpuuU -> iFpuuU
 #() iFpuLp -> iFpuLp
 #() iFpupi -> iFpupi
 #() iFpupp -> iFpupp
@@ -1170,10 +1191,16 @@
 #() iFEXpLp -> iFEXpLp
 #() iFEXppu -> iFEXppu
 #() iFEXppp -> iFEXppp
+#() iFiiiui -> iFiiiui
 #() iEiiipu -> iEiiipu
 #() iEiiipp -> iEiiipp
+#() iFiuuuu -> iFiuuuu
+#() iFiuuuU -> iFiuuuU
+#() iFiuuup -> iFiuuup
 #() iEiLLLL -> iEiLLLL
+#() iFipiip -> iFipiip
 #() iEipLLi -> iEipLLi
+#() iFippuu -> iFippuu
 #() iEippLi -> iEippLi
 #() iEipppi -> iEipppi
 #() iEipppp -> iEipppp
@@ -1354,7 +1381,13 @@
 #() iFEXpiip -> iFEXpiip
 #() iFEXpiup -> iFEXpiup
 #() iFEXpppp -> iFEXpppp
+#() iFiuuuup -> iFiuuuup
+#() iFiuuupu -> iFiuuupu
+#() iFiuuUpU -> iFiuuUpU
+#() iFiuuppp -> iFiuuppp
+#() iFiuUuUu -> iFiuUuUu
 #() iEipipLu -> iEipipLu
+#() iFipuIup -> iFipuIup
 #() iFuiiuup -> iFuiiuup
 #() iFpiippp -> iFpiippp
 #() iFppiiii -> iFppiiii
@@ -1477,6 +1510,8 @@
 #() iFEXLpiiL -> iFEXLpiiL
 #() iFEXLpppp -> iFEXLpppp
 #() iFEXppppp -> iFEXppppp
+#() iFiuuuuii -> iFiuuuuii
+#() iFippuIup -> iFippuIup
 #() iFuiiiuup -> iFuiiiuup
 #() iFpiuuuiu -> iFpiuuuiu
 #() iFpWCiWCi -> iFpWCiWCi
@@ -1546,6 +1581,9 @@
 #() iEEpippppp -> iEEpippppp
 #() iEEpLiLppp -> iEEpLiLppp
 #() iFEppipppp -> iFEppipppp
+#() iFiipppppp -> iFiipppppp
+#() iFiuuCCuup -> iFiuuCCuup
+#() iFiuuuupip -> iFiuuuupip
 #() iFuiiiiuup -> iFuiiiiuup
 #() iFpuuiiuuu -> iFpuuiiuuu
 #() iFXuupuupp -> iFXuupuupp
@@ -1591,6 +1629,7 @@
 #() vFXLiiipiii -> vFXLiiipiii
 #() iFEpuippupp -> iFEpuippupp
 #() iFEXLLLiipi -> iFEXLLLiipi
+#() iFiuuuppppu -> iFiuuuppppu
 #() iFuiiuuiiip -> iFuiiuuiiip
 #() iFuiiupiiup -> iFuiiupiiup
 #() iFdddpppppp -> iFdddpppppp
@@ -1632,6 +1671,7 @@
 #() vFffffffffff -> vFffffffffff
 #() iFEppippippp -> iFEppippippp
 #() iFEXpLiipiiL -> iFEXpLiipiiL
+#() iFiuuupppppu -> iFiuuupppppu
 #() iFuiiiuuiiip -> iFuiiiuuiiip
 #() iFppuuiiuuuu -> iFppuuiiuuuu
 #() iFXiLLdduudd -> iFXiLLdduudd
@@ -1684,6 +1724,7 @@
 #() vFuffffffffffff -> vFuffffffffffff
 #() vFXiLLLiiiiiiuu -> vFXiLLLiiiiiiuu
 #() iFEXLLlliLppppp -> iFEXLLlliLppppp
+#() iFiuuuuiiuuuuuu -> iFiuuuuiiuuuuuu
 #() iFddddpppddpppp -> iFddddpppddpppp
 #() iFXippuuuiipppp -> iFXippuuuiipppp
 #() uFippuuuulllipp -> uFippuuuulllipp
@@ -2085,6 +2126,11 @@ wrappedlibdl:
   - dlvsym
 - iEpppi:
   - dladdr1
+wrappedlibdrm:
+- vFp:
+  - drmFreeVersion
+- pFi:
+  - drmGetVersion
 wrappedlibgl:
 - iFi:
   - glXSwapIntervalMESA
diff --git a/src/wrapped32/generated/wrappedlibdrmdefs32.h b/src/wrapped32/generated/wrappedlibdrmdefs32.h
new file mode 100644
index 00000000..251db44a
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibdrmdefs32.h
@@ -0,0 +1,8 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibdrmDEFS32_H_
+#define __wrappedlibdrmDEFS32_H_
+
+
+#endif // __wrappedlibdrmDEFS32_H_
diff --git a/src/wrapped32/generated/wrappedlibdrmtypes32.h b/src/wrapped32/generated/wrappedlibdrmtypes32.h
new file mode 100644
index 00000000..3daa9521
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibdrmtypes32.h
@@ -0,0 +1,21 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibdrmTYPES32_H_
+#define __wrappedlibdrmTYPES32_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 void* (*pFi_t)(int32_t);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(drmFreeVersion, vFp_t) \
+	GO(drmGetVersion, pFi_t)
+
+#endif // __wrappedlibdrmTYPES32_H_
diff --git a/src/wrapped32/generated/wrappedlibdrmundefs32.h b/src/wrapped32/generated/wrappedlibdrmundefs32.h
new file mode 100644
index 00000000..9138d289
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibdrmundefs32.h
@@ -0,0 +1,8 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibdrmUNDEFS32_H_
+#define __wrappedlibdrmUNDEFS32_H_
+
+
+#endif // __wrappedlibdrmUNDEFS32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index 74871de6..fa5dc5e8 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -183,6 +183,7 @@ typedef intptr_t (*lES_t)(void*);
 typedef intptr_t (*lFX_t)(void*);
 typedef uintptr_t (*LEv_t)(void);
 typedef uintptr_t (*LFv_t)(void);
+typedef uintptr_t (*LFi_t)(int32_t);
 typedef uintptr_t (*LEL_t)(uintptr_t);
 typedef uintptr_t (*LEp_t)(void*);
 typedef uintptr_t (*LFp_t)(void*);
@@ -286,6 +287,7 @@ typedef int32_t (*iEiI_t)(int32_t, int64_t);
 typedef int32_t (*iEiu_t)(int32_t, uint32_t);
 typedef int32_t (*iFiu_t)(int32_t, uint32_t);
 typedef int32_t (*iEil_t)(int32_t, intptr_t);
+typedef int32_t (*iFiL_t)(int32_t, uintptr_t);
 typedef int32_t (*iEip_t)(int32_t, void*);
 typedef int32_t (*iFip_t)(int32_t, void*);
 typedef int32_t (*iEiS_t)(int32_t, void*);
@@ -568,16 +570,25 @@ typedef int32_t (*iEEhp_t)(x64emu_t*, uintptr_t, void*);
 typedef int32_t (*iFEXp_t)(x64emu_t*, void*, void*);
 typedef int32_t (*iEiii_t)(int32_t, int32_t, int32_t);
 typedef int32_t (*iEiiI_t)(int32_t, int32_t, int64_t);
+typedef int32_t (*iFiiu_t)(int32_t, int32_t, uint32_t);
 typedef int32_t (*iEiil_t)(int32_t, int32_t, intptr_t);
 typedef int32_t (*iEiip_t)(int32_t, int32_t, void*);
 typedef int32_t (*iFiip_t)(int32_t, int32_t, void*);
 typedef int32_t (*iEiiO_t)(int32_t, int32_t, int32_t);
 typedef int32_t (*iEiII_t)(int32_t, int64_t, int64_t);
+typedef int32_t (*iFiui_t)(int32_t, uint32_t, int32_t);
 typedef int32_t (*iEiuu_t)(int32_t, uint32_t, uint32_t);
+typedef int32_t (*iFiuu_t)(int32_t, uint32_t, uint32_t);
+typedef int32_t (*iFiuL_t)(int32_t, uint32_t, uintptr_t);
 typedef int32_t (*iEiup_t)(int32_t, uint32_t, void*);
+typedef int32_t (*iFiup_t)(int32_t, uint32_t, void*);
+typedef int32_t (*iFiUU_t)(int32_t, uint64_t, uint64_t);
+typedef int32_t (*iFiUp_t)(int32_t, uint64_t, void*);
+typedef int32_t (*iFidd_t)(int32_t, double, double);
 typedef int32_t (*iEill_t)(int32_t, intptr_t, intptr_t);
 typedef int32_t (*iEiLi_t)(int32_t, uintptr_t, int32_t);
 typedef int32_t (*iEiLp_t)(int32_t, uintptr_t, void*);
+typedef int32_t (*iFiLp_t)(int32_t, uintptr_t, void*);
 typedef int32_t (*iFipi_t)(int32_t, void*, int32_t);
 typedef int32_t (*iEipi_t)(int32_t, void*, int32_t);
 typedef int32_t (*iEipu_t)(int32_t, void*, uint32_t);
@@ -954,12 +965,21 @@ typedef int32_t (*iEiiip_t)(int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iEiiiN_t)(int32_t, int32_t, int32_t, ...);
 typedef int32_t (*iEiiII_t)(int32_t, int32_t, int64_t, int64_t);
 typedef int32_t (*iEiIIi_t)(int32_t, int64_t, int64_t, int32_t);
+typedef int32_t (*iFiuii_t)(int32_t, uint32_t, int32_t, int32_t);
+typedef int32_t (*iFiuuU_t)(int32_t, uint32_t, uint32_t, uint64_t);
+typedef int32_t (*iFiuup_t)(int32_t, uint32_t, uint32_t, void*);
+typedef int32_t (*iFiupu_t)(int32_t, uint32_t, void*, uint32_t);
+typedef int32_t (*iFiupp_t)(int32_t, uint32_t, void*, void*);
 typedef int32_t (*iEilli_t)(int32_t, intptr_t, intptr_t, int32_t);
+typedef int32_t (*iFiLpL_t)(int32_t, uintptr_t, void*, uintptr_t);
 typedef int32_t (*iEipii_t)(int32_t, void*, int32_t, int32_t);
 typedef int32_t (*iEipip_t)(int32_t, void*, int32_t, void*);
 typedef int32_t (*iEipui_t)(int32_t, void*, uint32_t, int32_t);
 typedef int32_t (*iEipup_t)(int32_t, void*, uint32_t, void*);
+typedef int32_t (*iFipup_t)(int32_t, void*, uint32_t, void*);
+typedef int32_t (*iFipLp_t)(int32_t, void*, uintptr_t, void*);
 typedef int32_t (*iEippi_t)(int32_t, void*, void*, int32_t);
+typedef int32_t (*iFippu_t)(int32_t, void*, void*, uint32_t);
 typedef int32_t (*iEippL_t)(int32_t, void*, void*, uintptr_t);
 typedef int32_t (*iFippp_t)(int32_t, void*, void*, void*);
 typedef int32_t (*iEipON_t)(int32_t, void*, int32_t, ...);
@@ -976,6 +996,7 @@ typedef int32_t (*iFpipp_t)(void*, int32_t, void*, void*);
 typedef int32_t (*iFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
 typedef int32_t (*iFpWWu_t)(void*, uint16_t, uint16_t, uint32_t);
 typedef int32_t (*iEpuiL_t)(void*, uint32_t, int32_t, uintptr_t);
+typedef int32_t (*iFpuuU_t)(void*, uint32_t, uint32_t, uint64_t);
 typedef int32_t (*iFpuLp_t)(void*, uint32_t, uintptr_t, void*);
 typedef int32_t (*iFpupi_t)(void*, uint32_t, void*, int32_t);
 typedef int32_t (*iFpupp_t)(void*, uint32_t, void*, void*);
@@ -1261,10 +1282,16 @@ typedef int32_t (*iFEXLpp_t)(x64emu_t*, void*, uintptr_t, void*, void*);
 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 (*iFiiiui_t)(int32_t, int32_t, int32_t, uint32_t, int32_t);
 typedef int32_t (*iEiiipu_t)(int32_t, int32_t, int32_t, void*, uint32_t);
 typedef int32_t (*iEiiipp_t)(int32_t, int32_t, int32_t, void*, void*);
+typedef int32_t (*iFiuuuu_t)(int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
+typedef int32_t (*iFiuuuU_t)(int32_t, uint32_t, uint32_t, uint32_t, uint64_t);
+typedef int32_t (*iFiuuup_t)(int32_t, uint32_t, uint32_t, uint32_t, void*);
 typedef int32_t (*iEiLLLL_t)(int32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
+typedef int32_t (*iFipiip_t)(int32_t, void*, int32_t, int32_t, void*);
 typedef int32_t (*iEipLLi_t)(int32_t, void*, uintptr_t, uintptr_t, int32_t);
+typedef int32_t (*iFippuu_t)(int32_t, void*, void*, uint32_t, uint32_t);
 typedef int32_t (*iEippLi_t)(int32_t, void*, void*, uintptr_t, int32_t);
 typedef int32_t (*iEipppi_t)(int32_t, void*, void*, void*, int32_t);
 typedef int32_t (*iEipppp_t)(int32_t, void*, void*, void*, void*);
@@ -1445,7 +1472,13 @@ typedef int32_t (*iFEXLpiL_t)(x64emu_t*, void*, uintptr_t, void*, int32_t, uintp
 typedef int32_t (*iFEXpiip_t)(x64emu_t*, void*, void*, int32_t, int32_t, void*);
 typedef int32_t (*iFEXpiup_t)(x64emu_t*, void*, void*, int32_t, uint32_t, void*);
 typedef int32_t (*iFEXpppp_t)(x64emu_t*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFiuuuup_t)(int32_t, uint32_t, uint32_t, uint32_t, uint32_t, void*);
+typedef int32_t (*iFiuuupu_t)(int32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t);
+typedef int32_t (*iFiuuUpU_t)(int32_t, uint32_t, uint32_t, uint64_t, void*, uint64_t);
+typedef int32_t (*iFiuuppp_t)(int32_t, uint32_t, uint32_t, void*, void*, void*);
+typedef int32_t (*iFiuUuUu_t)(int32_t, uint32_t, uint64_t, uint32_t, uint64_t, uint32_t);
 typedef int32_t (*iEipipLu_t)(int32_t, void*, int32_t, void*, uintptr_t, uint32_t);
+typedef int32_t (*iFipuIup_t)(int32_t, void*, uint32_t, int64_t, uint32_t, void*);
 typedef int32_t (*iFuiiuup_t)(uint32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
 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);
@@ -1568,6 +1601,8 @@ typedef int32_t (*iEEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, voi
 typedef int32_t (*iFEXLpiiL_t)(x64emu_t*, void*, uintptr_t, void*, int32_t, int32_t, uintptr_t);
 typedef int32_t (*iFEXLpppp_t)(x64emu_t*, void*, uintptr_t, void*, void*, void*, void*);
 typedef int32_t (*iFEXppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFiuuuuii_t)(int32_t, uint32_t, uint32_t, uint32_t, uint32_t, int32_t, int32_t);
+typedef int32_t (*iFippuIup_t)(int32_t, void*, void*, uint32_t, int64_t, uint32_t, void*);
 typedef int32_t (*iFuiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
 typedef int32_t (*iFpiuuuiu_t)(void*, int32_t, uint32_t, uint32_t, uint32_t, int32_t, uint32_t);
 typedef int32_t (*iFpWCiWCi_t)(void*, uint16_t, uint8_t, int32_t, uint16_t, uint8_t, int32_t);
@@ -1637,6 +1672,9 @@ typedef void (*vFXppuulll_t)(void*, void*, void*, uint32_t, uint32_t, intptr_t,
 typedef int32_t (*iEEpippppp_t)(x64emu_t*, void*, int32_t, void*, void*, void*, void*, void*);
 typedef int32_t (*iEEpLiLppp_t)(x64emu_t*, void*, uintptr_t, int32_t, uintptr_t, void*, void*, void*);
 typedef int32_t (*iFEppipppp_t)(x64emu_t*, void*, void*, int32_t, void*, void*, void*, void*);
+typedef int32_t (*iFiipppppp_t)(int32_t, int32_t, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFiuuCCuup_t)(int32_t, uint32_t, uint32_t, uint8_t, uint8_t, uint32_t, uint32_t, void*);
+typedef int32_t (*iFiuuuupip_t)(int32_t, uint32_t, uint32_t, uint32_t, uint32_t, void*, int32_t, void*);
 typedef int32_t (*iFuiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
 typedef int32_t (*iFpuuiiuuu_t)(void*, uint32_t, uint32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t);
 typedef int32_t (*iFXuupuupp_t)(void*, uint32_t, uint32_t, void*, uint32_t, uint32_t, void*, void*);
@@ -1682,6 +1720,7 @@ typedef void (*vFXiLLpiipi_t)(void*, int32_t, uintptr_t, uintptr_t, void*, int32
 typedef void (*vFXLiiipiii_t)(void*, uintptr_t, int32_t, int32_t, int32_t, void*, int32_t, int32_t, int32_t);
 typedef int32_t (*iFEpuippupp_t)(x64emu_t*, void*, uint32_t, int32_t, void*, void*, uint32_t, void*, void*);
 typedef int32_t (*iFEXLLLiipi_t)(x64emu_t*, void*, uintptr_t, uintptr_t, uintptr_t, int32_t, int32_t, void*, int32_t);
+typedef int32_t (*iFiuuuppppu_t)(int32_t, uint32_t, uint32_t, uint32_t, void*, void*, void*, void*, uint32_t);
 typedef int32_t (*iFuiiuuiiip_t)(uint32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFuiiupiiup_t)(uint32_t, int32_t, int32_t, uint32_t, void*, int32_t, int32_t, uint32_t, void*);
 typedef int32_t (*iFdddpppppp_t)(double, double, double, void*, void*, void*, void*, void*, void*);
@@ -1723,6 +1762,7 @@ typedef void (*vFuddiiddiip_t)(uint32_t, double, double, int32_t, int32_t, doubl
 typedef void (*vFffffffffff_t)(float, float, float, float, float, float, float, float, float, float);
 typedef int32_t (*iFEppippippp_t)(x64emu_t*, void*, void*, int32_t, void*, void*, int32_t, void*, void*, void*);
 typedef int32_t (*iFEXpLiipiiL_t)(x64emu_t*, void*, void*, uintptr_t, int32_t, int32_t, void*, int32_t, int32_t, uintptr_t);
+typedef int32_t (*iFiuuupppppu_t)(int32_t, uint32_t, uint32_t, uint32_t, void*, void*, void*, void*, void*, uint32_t);
 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 (*iFppuuiiuuuu_t)(void*, void*, uint32_t, uint32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef int32_t (*iFXiLLdduudd_t)(void*, int32_t, uintptr_t, uintptr_t, double, double, uint32_t, uint32_t, double, double);
@@ -1775,6 +1815,7 @@ typedef void (*vFuUuuuuuuuuuuu_t)(uint32_t, uint64_t, uint32_t, uint32_t, uint32
 typedef void (*vFuffffffffffff_t)(uint32_t, float, float, float, float, float, float, float, float, float, float, float, float);
 typedef void (*vFXiLLLiiiiiiuu_t)(void*, int32_t, uintptr_t, uintptr_t, uintptr_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
 typedef int32_t (*iFEXLLlliLppppp_t)(x64emu_t*, void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, uintptr_t, void*, void*, void*, void*, void*);
+typedef int32_t (*iFiuuuuiiuuuuuu_t)(int32_t, uint32_t, uint32_t, uint32_t, uint32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef int32_t (*iFddddpppddpppp_t)(double, double, double, double, void*, void*, void*, double, double, void*, void*, 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*);
@@ -1901,6 +1942,7 @@ void lES_32(x64emu_t *emu, uintptr_t fcn) { lES_t fn = (lES_t)fcn; errno = emu->
 void lFX_32(x64emu_t *emu, uintptr_t fcn) { lFX_t fn = (lFX_t)fcn; R_EAX = to_long(fn(getDisplay(from_ptriv(R_ESP + 4)))); }
 void LEv_32(x64emu_t *emu, uintptr_t fcn) { LEv_t fn = (LEv_t)fcn; errno = emu->libc_err; R_EAX = to_ulong(fn()); emu->libc_err = errno; }
 void LFv_32(x64emu_t *emu, uintptr_t fcn) { LFv_t fn = (LFv_t)fcn; R_EAX = to_ulong(fn()); }
+void LFi_32(x64emu_t *emu, uintptr_t fcn) { LFi_t fn = (LFi_t)fcn; R_EAX = to_ulong(fn(from_ptri(int32_t, R_ESP + 4))); }
 void LEL_32(x64emu_t *emu, uintptr_t fcn) { LEL_t fn = (LEL_t)fcn; errno = emu->libc_err; R_EAX = to_ulong(fn(from_ulong(from_ptri(ulong_t, R_ESP + 4)))); emu->libc_err = errno; }
 void LEp_32(x64emu_t *emu, uintptr_t fcn) { LEp_t fn = (LEp_t)fcn; errno = emu->libc_err; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4))); emu->libc_err = errno; }
 void LFp_32(x64emu_t *emu, uintptr_t fcn) { LFp_t fn = (LFp_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4))); }
@@ -2004,6 +2046,7 @@ void iEiI_32(x64emu_t *emu, uintptr_t fcn) { iEiI_t fn = (iEiI_t)fcn; errno = em
 void iEiu_32(x64emu_t *emu, uintptr_t fcn) { iEiu_t fn = (iEiu_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8)); emu->libc_err = errno; }
 void iFiu_32(x64emu_t *emu, uintptr_t fcn) { iFiu_t fn = (iFiu_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8)); }
 void iEil_32(x64emu_t *emu, uintptr_t fcn) { iEil_t fn = (iEil_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8))); emu->libc_err = errno; }
+void iFiL_32(x64emu_t *emu, uintptr_t fcn) { iFiL_t fn = (iFiL_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8))); }
 void iEip_32(x64emu_t *emu, uintptr_t fcn) { iEip_t fn = (iEip_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8)); emu->libc_err = errno; }
 void iFip_32(x64emu_t *emu, uintptr_t fcn) { iFip_t fn = (iFip_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8)); }
 void iEiS_32(x64emu_t *emu, uintptr_t fcn) { iEiS_t fn = (iEiS_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), io_convert32(from_ptriv(R_ESP + 8))); emu->libc_err = errno; }
@@ -2286,16 +2329,25 @@ void iEEhp_32(x64emu_t *emu, uintptr_t fcn) { iEEhp_t fn = (iEEhp_t)fcn; errno =
 void iFEXp_32(x64emu_t *emu, uintptr_t fcn) { iFEXp_t fn = (iFEXp_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8)); }
 void iEiii_32(x64emu_t *emu, uintptr_t fcn) { iEiii_t fn = (iEiii_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); emu->libc_err = errno; }
 void iEiiI_32(x64emu_t *emu, uintptr_t fcn) { iEiiI_t fn = (iEiiI_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int64_t, R_ESP + 12)); emu->libc_err = errno; }
+void iFiiu_32(x64emu_t *emu, uintptr_t fcn) { iFiiu_t fn = (iFiiu_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); }
 void iEiil_32(x64emu_t *emu, uintptr_t fcn) { iEiil_t fn = (iEiil_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_long(from_ptri(long_t, R_ESP + 12))); emu->libc_err = errno; }
 void iEiip_32(x64emu_t *emu, uintptr_t fcn) { iEiip_t fn = (iEiip_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); emu->libc_err = errno; }
 void iFiip_32(x64emu_t *emu, uintptr_t fcn) { iFiip_t fn = (iFiip_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void iEiiO_32(x64emu_t *emu, uintptr_t fcn) { iEiiO_t fn = (iEiiO_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), of_convert32(from_ptri(int32_t, R_ESP + 12))); emu->libc_err = errno; }
 void iEiII_32(x64emu_t *emu, uintptr_t fcn) { iEiII_t fn = (iEiII_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int64_t, R_ESP + 8), from_ptri(int64_t, R_ESP + 16)); emu->libc_err = errno; }
+void iFiui_32(x64emu_t *emu, uintptr_t fcn) { iFiui_t fn = (iFiui_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); }
 void iEiuu_32(x64emu_t *emu, uintptr_t fcn) { iEiuu_t fn = (iEiuu_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); emu->libc_err = errno; }
+void iFiuu_32(x64emu_t *emu, uintptr_t fcn) { iFiuu_t fn = (iFiuu_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); }
+void iFiuL_32(x64emu_t *emu, uintptr_t fcn) { iFiuL_t fn = (iFiuL_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12))); }
 void iEiup_32(x64emu_t *emu, uintptr_t fcn) { iEiup_t fn = (iEiup_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); emu->libc_err = errno; }
+void iFiup_32(x64emu_t *emu, uintptr_t fcn) { iFiup_t fn = (iFiup_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); }
+void iFiUU_32(x64emu_t *emu, uintptr_t fcn) { iFiUU_t fn = (iFiUU_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint64_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 16)); }
+void iFiUp_32(x64emu_t *emu, uintptr_t fcn) { iFiUp_t fn = (iFiUp_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint64_t, R_ESP + 8), from_ptriv(R_ESP + 16)); }
+void iFidd_32(x64emu_t *emu, uintptr_t fcn) { iFidd_t fn = (iFidd_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16)); }
 void iEill_32(x64emu_t *emu, uintptr_t fcn) { iEill_t fn = (iEill_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_long(from_ptri(long_t, R_ESP + 12))); emu->libc_err = errno; }
 void iEiLi_32(x64emu_t *emu, uintptr_t fcn) { iEiLi_t fn = (iEiLi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12)); emu->libc_err = errno; }
 void iEiLp_32(x64emu_t *emu, uintptr_t fcn) { iEiLp_t fn = (iEiLp_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12)); emu->libc_err = errno; }
+void iFiLp_32(x64emu_t *emu, uintptr_t fcn) { iFiLp_t fn = (iFiLp_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12)); }
 void iFipi_32(x64emu_t *emu, uintptr_t fcn) { iFipi_t fn = (iFipi_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); }
 void iEipi_32(x64emu_t *emu, uintptr_t fcn) { iEipi_t fn = (iEipi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); emu->libc_err = errno; }
 void iEipu_32(x64emu_t *emu, uintptr_t fcn) { iEipu_t fn = (iEipu_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); emu->libc_err = errno; }
@@ -2672,12 +2724,21 @@ void iEiiip_32(x64emu_t *emu, uintptr_t fcn) { iEiiip_t fn = (iEiiip_t)fcn; errn
 void iEiiiN_32(x64emu_t *emu, uintptr_t fcn) { iEiiiN_t fn = (iEiiiN_t)fcn; errno = emu->libc_err; 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)); emu->libc_err = errno; }
 void iEiiII_32(x64emu_t *emu, uintptr_t fcn) { iEiiII_t fn = (iEiiII_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int64_t, R_ESP + 12), from_ptri(int64_t, R_ESP + 20)); emu->libc_err = errno; }
 void iEiIIi_32(x64emu_t *emu, uintptr_t fcn) { iEiIIi_t fn = (iEiIIi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int64_t, R_ESP + 8), from_ptri(int64_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 24)); emu->libc_err = errno; }
+void iFiuii_32(x64emu_t *emu, uintptr_t fcn) { iFiuii_t fn = (iFiuii_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
+void iFiuuU_32(x64emu_t *emu, uintptr_t fcn) { iFiuuU_t fn = (iFiuuU_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint64_t, R_ESP + 16)); }
+void iFiuup_32(x64emu_t *emu, uintptr_t fcn) { iFiuup_t fn = (iFiuup_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); }
+void iFiupu_32(x64emu_t *emu, uintptr_t fcn) { iFiupu_t fn = (iFiupu_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
+void iFiupp_32(x64emu_t *emu, uintptr_t fcn) { iFiupp_t fn = (iFiupp_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iEilli_32(x64emu_t *emu, uintptr_t fcn) { iEilli_t fn = (iEilli_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_long(from_ptri(long_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16)); emu->libc_err = errno; }
+void iFiLpL_32(x64emu_t *emu, uintptr_t fcn) { iFiLpL_t fn = (iFiLpL_t)fcn; R_EAX = fn(from_ptri(int32_t, 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))); }
 void iEipii_32(x64emu_t *emu, uintptr_t fcn) { iEipii_t fn = (iEipii_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); emu->libc_err = errno; }
 void iEipip_32(x64emu_t *emu, uintptr_t fcn) { iEipip_t fn = (iEipip_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); emu->libc_err = errno; }
 void iEipui_32(x64emu_t *emu, uintptr_t fcn) { iEipui_t fn = (iEipui_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); emu->libc_err = errno; }
 void iEipup_32(x64emu_t *emu, uintptr_t fcn) { iEipup_t fn = (iEipup_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); emu->libc_err = errno; }
+void iFipup_32(x64emu_t *emu, uintptr_t fcn) { iFipup_t fn = (iFipup_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); }
+void iFipLp_32(x64emu_t *emu, uintptr_t fcn) { iFipLp_t fn = (iFipLp_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); }
 void iEippi_32(x64emu_t *emu, uintptr_t fcn) { iEippi_t fn = (iEippi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); emu->libc_err = errno; }
+void iFippu_32(x64emu_t *emu, uintptr_t fcn) { iFippu_t fn = (iFippu_t)fcn; R_EAX = 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)); }
 void iEippL_32(x64emu_t *emu, uintptr_t fcn) { iEippL_t fn = (iEippL_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); emu->libc_err = errno; }
 void iFippp_32(x64emu_t *emu, uintptr_t fcn) { iFippp_t fn = (iFippp_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iEipON_32(x64emu_t *emu, uintptr_t fcn) { iEipON_t fn = (iEipON_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), of_convert32(from_ptri(int32_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); emu->libc_err = errno; }
@@ -2694,6 +2755,7 @@ void iFpipp_32(x64emu_t *emu, uintptr_t fcn) { iFpipp_t fn = (iFpipp_t)fcn; R_EA
 void iFpCCC_32(x64emu_t *emu, uintptr_t fcn) { iFpCCC_t fn = (iFpCCC_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint8_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(uint8_t, R_ESP + 16)); }
 void iFpWWu_32(x64emu_t *emu, uintptr_t fcn) { iFpWWu_t fn = (iFpWWu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint16_t, R_ESP + 8), from_ptri(uint16_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
 void iEpuiL_32(x64emu_t *emu, uintptr_t fcn) { iEpuiL_t fn = (iEpuiL_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); emu->libc_err = errno; }
+void iFpuuU_32(x64emu_t *emu, uintptr_t fcn) { iFpuuU_t fn = (iFpuuU_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint64_t, R_ESP + 16)); }
 void iFpuLp_32(x64emu_t *emu, uintptr_t fcn) { iFpuLp_t fn = (iFpuLp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); }
 void iFpupi_32(x64emu_t *emu, uintptr_t fcn) { iFpupi_t fn = (iFpupi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFpupp_32(x64emu_t *emu, uintptr_t fcn) { iFpupp_t fn = (iFpupp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
@@ -2979,10 +3041,16 @@ void iFEXLpp_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpp_t fn = (iFEXLpp_t)fcn; R
 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 iFiiiui_32(x64emu_t *emu, uintptr_t fcn) { iFiiiui_t fn = (iFiiiui_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_ptri(uint32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20)); }
 void iEiiipu_32(x64emu_t *emu, uintptr_t fcn) { iEiiipu_t fn = (iEiiipu_t)fcn; errno = emu->libc_err; 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)); emu->libc_err = errno; }
 void iEiiipp_32(x64emu_t *emu, uintptr_t fcn) { iEiiipp_t fn = (iEiiipp_t)fcn; errno = emu->libc_err; 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)); emu->libc_err = errno; }
+void iFiuuuu_32(x64emu_t *emu, uintptr_t fcn) { iFiuuuu_t fn = (iFiuuuu_t)fcn; R_EAX = fn(from_ptri(int32_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)); }
+void iFiuuuU_32(x64emu_t *emu, uintptr_t fcn) { iFiuuuU_t fn = (iFiuuuU_t)fcn; R_EAX = fn(from_ptri(int32_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(uint64_t, R_ESP + 20)); }
+void iFiuuup_32(x64emu_t *emu, uintptr_t fcn) { iFiuuup_t fn = (iFiuuup_t)fcn; R_EAX = fn(from_ptri(int32_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_ptriv(R_ESP + 20)); }
 void iEiLLLL_32(x64emu_t *emu, uintptr_t fcn) { iEiLLLL_t fn = (iEiLLLL_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, 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))); emu->libc_err = errno; }
+void iFipiip_32(x64emu_t *emu, uintptr_t fcn) { iFipiip_t fn = (iFipiip_t)fcn; R_EAX = fn(from_ptri(int32_t, 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)); }
 void iEipLLi_32(x64emu_t *emu, uintptr_t fcn) { iEipLLi_t fn = (iEipLLi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, 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)); emu->libc_err = errno; }
+void iFippuu_32(x64emu_t *emu, uintptr_t fcn) { iFippuu_t fn = (iFippuu_t)fcn; R_EAX = 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)); }
 void iEippLi_32(x64emu_t *emu, uintptr_t fcn) { iEippLi_t fn = (iEippLi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20)); emu->libc_err = errno; }
 void iEipppi_32(x64emu_t *emu, uintptr_t fcn) { iEipppi_t fn = (iEipppi_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, 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)); emu->libc_err = errno; }
 void iEipppp_32(x64emu_t *emu, uintptr_t fcn) { iEipppp_t fn = (iEipppp_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); emu->libc_err = errno; }
@@ -3163,7 +3231,13 @@ void iFEXLpiL_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpiL_t fn = (iFEXLpiL_t)fcn
 void iFEXpiip_32(x64emu_t *emu, uintptr_t fcn) { iFEXpiip_t fn = (iFEXpiip_t)fcn; R_EAX = fn(emu, 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)); }
 void iFEXpiup_32(x64emu_t *emu, uintptr_t fcn) { iFEXpiup_t fn = (iFEXpiup_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); }
 void iFEXpppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXpppp_t fn = (iFEXpppp_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), from_ptriv(R_ESP + 20)); }
+void iFiuuuup_32(x64emu_t *emu, uintptr_t fcn) { iFiuuuup_t fn = (iFiuuuup_t)fcn; R_EAX = fn(from_ptri(int32_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_ptriv(R_ESP + 24)); }
+void iFiuuupu_32(x64emu_t *emu, uintptr_t fcn) { iFiuuupu_t fn = (iFiuuupu_t)fcn; R_EAX = fn(from_ptri(int32_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_ptriv(R_ESP + 20), from_ptri(uint32_t, R_ESP + 24)); }
+void iFiuuUpU_32(x64emu_t *emu, uintptr_t fcn) { iFiuuUpU_t fn = (iFiuuUpU_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint64_t, R_ESP + 16), from_ptriv(R_ESP + 24), from_ptri(uint64_t, R_ESP + 28)); }
+void iFiuuppp_32(x64emu_t *emu, uintptr_t fcn) { iFiuuppp_t fn = (iFiuuppp_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
+void iFiuUuUu_32(x64emu_t *emu, uintptr_t fcn) { iFiuUuUu_t fn = (iFiuUuUu_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint64_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 32)); }
 void iEipipLu_32(x64emu_t *emu, uintptr_t fcn) { iEipipLu_t fn = (iEipipLu_t)fcn; errno = emu->libc_err; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ulong(from_ptri(ulong_t, R_ESP + 20)), from_ptri(uint32_t, R_ESP + 24)); emu->libc_err = errno; }
+void iFipuIup_32(x64emu_t *emu, uintptr_t fcn) { iFipuIup_t fn = (iFipuIup_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int64_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 24), from_ptriv(R_ESP + 28)); }
 void iFuiiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiiuup_t fn = (iFuiiuup_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(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptriv(R_ESP + 24)); }
 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)); }
@@ -3286,6 +3360,8 @@ void iEEpppppp_32(x64emu_t *emu, uintptr_t fcn) { iEEpppppp_t fn = (iEEpppppp_t)
 void iFEXLpiiL_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpiiL_t fn = (iFEXLpiiL_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), from_ptri(int32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24))); }
 void iFEXLpppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpppp_t fn = (iFEXLpppp_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_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
 void iFEXppppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXppppp_t fn = (iFEXppppp_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), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
+void iFiuuuuii_32(x64emu_t *emu, uintptr_t fcn) { iFiuuuuii_t fn = (iFiuuuuii_t)fcn; R_EAX = fn(from_ptri(int32_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(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); }
+void iFippuIup_32(x64emu_t *emu, uintptr_t fcn) { iFippuIup_t fn = (iFippuIup_t)fcn; R_EAX = 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(int64_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 28), from_ptriv(R_ESP + 32)); }
 void iFuiiiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiiiuup_t fn = (iFuiiiuup_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_ptriv(R_ESP + 28)); }
 void iFpiuuuiu_32(x64emu_t *emu, uintptr_t fcn) { iFpiuuuiu_t fn = (iFpiuuuiu_t)fcn; R_EAX = fn(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), from_ptri(int32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28)); }
 void iFpWCiWCi_32(x64emu_t *emu, uintptr_t fcn) { iFpWCiWCi_t fn = (iFpWCiWCi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint16_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint16_t, R_ESP + 20), from_ptri(uint8_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); }
@@ -3355,6 +3431,9 @@ void vFXppuulll_32(x64emu_t *emu, uintptr_t fcn) { vFXppuulll_t fn = (vFXppuulll
 void iEEpippppp_32(x64emu_t *emu, uintptr_t fcn) { iEEpippppp_t fn = (iEEpippppp_t)fcn; errno = emu->libc_err; 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)); emu->libc_err = errno; }
 void iEEpLiLppp_32(x64emu_t *emu, uintptr_t fcn) { iEEpLiLppp_t fn = (iEEpLiLppp_t)fcn; errno = emu->libc_err; 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)); emu->libc_err = errno; }
 void iFEppipppp_32(x64emu_t *emu, uintptr_t fcn) { iFEppipppp_t fn = (iFEppipppp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(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), from_ptriv(R_ESP + 28)); }
+void iFiipppppp_32(x64emu_t *emu, uintptr_t fcn) { iFiipppppp_t fn = (iFiipppppp_t)fcn; R_EAX = fn(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_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32)); }
+void iFiuuCCuup_32(x64emu_t *emu, uintptr_t fcn) { iFiuuCCuup_t fn = (iFiuuCCuup_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint8_t, R_ESP + 16), from_ptri(uint8_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptriv(R_ESP + 32)); }
+void iFiuuuupip_32(x64emu_t *emu, uintptr_t fcn) { iFiuuuupip_t fn = (iFiuuuupip_t)fcn; R_EAX = fn(from_ptri(int32_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_ptriv(R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptriv(R_ESP + 32)); }
 void iFuiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiiiiuup_t fn = (iFuiiiiuup_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_ptriv(R_ESP + 32)); }
 void iFpuuiiuuu_32(x64emu_t *emu, uintptr_t fcn) { iFpuuiiuuu_t fn = (iFpuuiiuuu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, 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(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32)); }
 void iFXuupuupp_32(x64emu_t *emu, uintptr_t fcn) { iFXuupuupp_t fn = (iFXuupuupp_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_ptriv(R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32)); }
@@ -3400,6 +3479,7 @@ void vFXiLLpiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLpiipi_t fn = (vFXiLLpi
 void vFXLiiipiii_32(x64emu_t *emu, uintptr_t fcn) { vFXLiiipiii_t fn = (vFXLiiipiii_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_ptriv(R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36)); }
 void iFEpuippupp_32(x64emu_t *emu, uintptr_t fcn) { iFEpuippupp_t fn = (iFEpuippupp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32)); }
 void iFEXLLLiipi_32(x64emu_t *emu, uintptr_t fcn) { iFEXLLLiipi_t fn = (iFEXLLLiipi_t)fcn; R_EAX = fn(emu, 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 iFiuuuppppu_32(x64emu_t *emu, uintptr_t fcn) { iFiuuuppppu_t fn = (iFiuuuppppu_t)fcn; R_EAX = fn(from_ptri(int32_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_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptri(uint32_t, R_ESP + 36)); }
 void iFuiiuuiiip_32(x64emu_t *emu, uintptr_t fcn) { iFuiiuuiiip_t fn = (iFuiiuuiiip_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(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), from_ptri(int32_t, R_ESP + 32), from_ptriv(R_ESP + 36)); }
 void iFuiiupiiup_32(x64emu_t *emu, uintptr_t fcn) { iFuiiupiiup_t fn = (iFuiiupiiup_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(uint32_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(uint32_t, R_ESP + 32), from_ptriv(R_ESP + 36)); }
 void iFdddpppppp_32(x64emu_t *emu, uintptr_t fcn) { iFdddpppppp_t fn = (iFdddpppppp_t)fcn; R_EAX = fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), 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)); }
@@ -3441,6 +3521,7 @@ void vFuddiiddiip_32(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiip_t fn = (vFuddi
 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 iFEppippippp_32(x64emu_t *emu, uintptr_t fcn) { iFEppippippp_t fn = (iFEppippippp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, 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 iFEXpLiipiiL_32(x64emu_t *emu, uintptr_t fcn) { iFEXpLiipiiL_t fn = (iFEXpLiipiiL_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_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), from_ptri(int32_t, R_ESP + 32), from_ulong(from_ptri(ulong_t, R_ESP + 36))); }
+void iFiuuupppppu_32(x64emu_t *emu, uintptr_t fcn) { iFiuuupppppu_t fn = (iFiuuupppppu_t)fcn; R_EAX = fn(from_ptri(int32_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_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_ptri(uint32_t, 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 iFppuuiiuuuu_32(x64emu_t *emu, uintptr_t fcn) { iFppuuiiuuuu_t fn = (iFppuuiiuuuu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_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(uint32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, 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)); }
@@ -3493,6 +3574,7 @@ void vFuUuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuUuuuuuuuuuuu_t fn = (
 void vFuffffffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFuffffffffffff_t fn = (vFuffffffffffff_t)fcn; fn(from_ptri(uint32_t, 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), from_ptri(float, R_ESP + 52)); }
 void vFXiLLLiiiiiiuu_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLLiiiiiiuu_t fn = (vFXiLLLiiiiiiuu_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_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), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptri(uint32_t, R_ESP + 52)); }
 void iFEXLLlliLppppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXLLlliLppppp_t fn = (iFEXLLlliLppppp_t)fcn; R_EAX = fn(emu, 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)), 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 iFiuuuuiiuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { iFiuuuuiiuuuuuu_t fn = (iFiuuuuiiuuuuuu_t)fcn; R_EAX = fn(from_ptri(int32_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(int32_t, R_ESP + 24), from_ptri(int32_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)); }
 void iFddddpppddpppp_32(x64emu_t *emu, uintptr_t fcn) { iFddddpppddpppp_t fn = (iFddddpppddpppp_t)fcn; R_EAX = fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28), from_ptriv(R_ESP + 36), from_ptriv(R_ESP + 40), from_ptriv(R_ESP + 44), from_ptri(double, R_ESP + 48), from_ptri(double, R_ESP + 56), from_ptriv(R_ESP + 64), from_ptriv(R_ESP + 68), from_ptriv(R_ESP + 72), from_ptriv(R_ESP + 76)); }
 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)); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index 8a49f4ae..56328d42 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -133,6 +133,7 @@ void lES_32(x64emu_t *emu, uintptr_t fnc);
 void lFX_32(x64emu_t *emu, uintptr_t fnc);
 void LEv_32(x64emu_t *emu, uintptr_t fnc);
 void LFv_32(x64emu_t *emu, uintptr_t fnc);
+void LFi_32(x64emu_t *emu, uintptr_t fnc);
 void LEL_32(x64emu_t *emu, uintptr_t fnc);
 void LEp_32(x64emu_t *emu, uintptr_t fnc);
 void LFp_32(x64emu_t *emu, uintptr_t fnc);
@@ -236,6 +237,7 @@ void iEiI_32(x64emu_t *emu, uintptr_t fnc);
 void iEiu_32(x64emu_t *emu, uintptr_t fnc);
 void iFiu_32(x64emu_t *emu, uintptr_t fnc);
 void iEil_32(x64emu_t *emu, uintptr_t fnc);
+void iFiL_32(x64emu_t *emu, uintptr_t fnc);
 void iEip_32(x64emu_t *emu, uintptr_t fnc);
 void iFip_32(x64emu_t *emu, uintptr_t fnc);
 void iEiS_32(x64emu_t *emu, uintptr_t fnc);
@@ -518,16 +520,25 @@ void iEEhp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXp_32(x64emu_t *emu, uintptr_t fnc);
 void iEiii_32(x64emu_t *emu, uintptr_t fnc);
 void iEiiI_32(x64emu_t *emu, uintptr_t fnc);
+void iFiiu_32(x64emu_t *emu, uintptr_t fnc);
 void iEiil_32(x64emu_t *emu, uintptr_t fnc);
 void iEiip_32(x64emu_t *emu, uintptr_t fnc);
 void iFiip_32(x64emu_t *emu, uintptr_t fnc);
 void iEiiO_32(x64emu_t *emu, uintptr_t fnc);
 void iEiII_32(x64emu_t *emu, uintptr_t fnc);
+void iFiui_32(x64emu_t *emu, uintptr_t fnc);
 void iEiuu_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuu_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuL_32(x64emu_t *emu, uintptr_t fnc);
 void iEiup_32(x64emu_t *emu, uintptr_t fnc);
+void iFiup_32(x64emu_t *emu, uintptr_t fnc);
+void iFiUU_32(x64emu_t *emu, uintptr_t fnc);
+void iFiUp_32(x64emu_t *emu, uintptr_t fnc);
+void iFidd_32(x64emu_t *emu, uintptr_t fnc);
 void iEill_32(x64emu_t *emu, uintptr_t fnc);
 void iEiLi_32(x64emu_t *emu, uintptr_t fnc);
 void iEiLp_32(x64emu_t *emu, uintptr_t fnc);
+void iFiLp_32(x64emu_t *emu, uintptr_t fnc);
 void iFipi_32(x64emu_t *emu, uintptr_t fnc);
 void iEipi_32(x64emu_t *emu, uintptr_t fnc);
 void iEipu_32(x64emu_t *emu, uintptr_t fnc);
@@ -904,12 +915,21 @@ void iEiiip_32(x64emu_t *emu, uintptr_t fnc);
 void iEiiiN_32(x64emu_t *emu, uintptr_t fnc);
 void iEiiII_32(x64emu_t *emu, uintptr_t fnc);
 void iEiIIi_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuii_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuU_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuup_32(x64emu_t *emu, uintptr_t fnc);
+void iFiupu_32(x64emu_t *emu, uintptr_t fnc);
+void iFiupp_32(x64emu_t *emu, uintptr_t fnc);
 void iEilli_32(x64emu_t *emu, uintptr_t fnc);
+void iFiLpL_32(x64emu_t *emu, uintptr_t fnc);
 void iEipii_32(x64emu_t *emu, uintptr_t fnc);
 void iEipip_32(x64emu_t *emu, uintptr_t fnc);
 void iEipui_32(x64emu_t *emu, uintptr_t fnc);
 void iEipup_32(x64emu_t *emu, uintptr_t fnc);
+void iFipup_32(x64emu_t *emu, uintptr_t fnc);
+void iFipLp_32(x64emu_t *emu, uintptr_t fnc);
 void iEippi_32(x64emu_t *emu, uintptr_t fnc);
+void iFippu_32(x64emu_t *emu, uintptr_t fnc);
 void iEippL_32(x64emu_t *emu, uintptr_t fnc);
 void iFippp_32(x64emu_t *emu, uintptr_t fnc);
 void iEipON_32(x64emu_t *emu, uintptr_t fnc);
@@ -926,6 +946,7 @@ void iFpipp_32(x64emu_t *emu, uintptr_t fnc);
 void iFpCCC_32(x64emu_t *emu, uintptr_t fnc);
 void iFpWWu_32(x64emu_t *emu, uintptr_t fnc);
 void iEpuiL_32(x64emu_t *emu, uintptr_t fnc);
+void iFpuuU_32(x64emu_t *emu, uintptr_t fnc);
 void iFpuLp_32(x64emu_t *emu, uintptr_t fnc);
 void iFpupi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpupp_32(x64emu_t *emu, uintptr_t fnc);
@@ -1211,10 +1232,16 @@ void iFEXLpp_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 iFiiiui_32(x64emu_t *emu, uintptr_t fnc);
 void iEiiipu_32(x64emu_t *emu, uintptr_t fnc);
 void iEiiipp_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuu_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuU_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuup_32(x64emu_t *emu, uintptr_t fnc);
 void iEiLLLL_32(x64emu_t *emu, uintptr_t fnc);
+void iFipiip_32(x64emu_t *emu, uintptr_t fnc);
 void iEipLLi_32(x64emu_t *emu, uintptr_t fnc);
+void iFippuu_32(x64emu_t *emu, uintptr_t fnc);
 void iEippLi_32(x64emu_t *emu, uintptr_t fnc);
 void iEipppi_32(x64emu_t *emu, uintptr_t fnc);
 void iEipppp_32(x64emu_t *emu, uintptr_t fnc);
@@ -1395,7 +1422,13 @@ void iFEXLpiL_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXpiip_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXpiup_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXpppp_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuup_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuupu_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuUpU_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuppp_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuUuUu_32(x64emu_t *emu, uintptr_t fnc);
 void iEipipLu_32(x64emu_t *emu, uintptr_t fnc);
+void iFipuIup_32(x64emu_t *emu, uintptr_t fnc);
 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);
@@ -1518,6 +1551,8 @@ void iEEpppppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLpiiL_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLpppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXppppp_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuuii_32(x64emu_t *emu, uintptr_t fnc);
+void iFippuIup_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiiiuup_32(x64emu_t *emu, uintptr_t fnc);
 void iFpiuuuiu_32(x64emu_t *emu, uintptr_t fnc);
 void iFpWCiWCi_32(x64emu_t *emu, uintptr_t fnc);
@@ -1587,6 +1622,9 @@ void vFXppuulll_32(x64emu_t *emu, uintptr_t fnc);
 void iEEpippppp_32(x64emu_t *emu, uintptr_t fnc);
 void iEEpLiLppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEppipppp_32(x64emu_t *emu, uintptr_t fnc);
+void iFiipppppp_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuCCuup_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuupip_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiiiiuup_32(x64emu_t *emu, uintptr_t fnc);
 void iFpuuiiuuu_32(x64emu_t *emu, uintptr_t fnc);
 void iFXuupuupp_32(x64emu_t *emu, uintptr_t fnc);
@@ -1632,6 +1670,7 @@ void vFXiLLpiipi_32(x64emu_t *emu, uintptr_t fnc);
 void vFXLiiipiii_32(x64emu_t *emu, uintptr_t fnc);
 void iFEpuippupp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLLLiipi_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuppppu_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiiuuiiip_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiiupiiup_32(x64emu_t *emu, uintptr_t fnc);
 void iFdddpppppp_32(x64emu_t *emu, uintptr_t fnc);
@@ -1673,6 +1712,7 @@ void vFuddiiddiip_32(x64emu_t *emu, uintptr_t fnc);
 void vFffffffffff_32(x64emu_t *emu, uintptr_t fnc);
 void iFEppippippp_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXpLiipiiL_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuupppppu_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiiiuuiiip_32(x64emu_t *emu, uintptr_t fnc);
 void iFppuuiiuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void iFXiLLdduudd_32(x64emu_t *emu, uintptr_t fnc);
@@ -1725,6 +1765,7 @@ void vFuUuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void vFuffffffffffff_32(x64emu_t *emu, uintptr_t fnc);
 void vFXiLLLiiiiiiuu_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLLlliLppppp_32(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuuiiuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
 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);
diff --git a/src/wrapped32/wrappedlibdrm.c b/src/wrapped32/wrappedlibdrm.c
new file mode 100644
index 00000000..f6f5331b
--- /dev/null
+++ b/src/wrapped32/wrappedlibdrm.c
@@ -0,0 +1,107 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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 "myalign32.h"
+
+static const char* libdrmName = "libdrm.so.2";
+#define LIBNAME libdrm
+
+#define ADDED_FUNCTIONS()                   \
+
+#include "generated/wrappedlibdrmtypes32.h"
+
+#include "wrappercallback32.h"
+
+//EXPORT void my32_drmMsg(x64emu_t* emu, void* fmt, void* b) {
+//    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1);
+//    PREPARE_VALIST;
+//    char* buf = NULL;
+//    int dummy = vasprintf(&buf, (const char*)fmt, VARARGS);
+//    (void)dummy;
+//    my->drmMsg(buf);
+//    free(buf);
+//}
+
+typedef struct my_drmVersion_s {
+    int     version_major;
+    int     version_minor;
+    int     version_patchlevel;
+    int     name_len;
+    char*   name;
+    int     date_len;
+    char*   date;
+    int     desc_len;
+    char*   desc;
+} my_drmVersion_t;
+typedef struct my_drmVersion_32_s {
+    int     version_major;
+    int     version_minor;
+    int     version_patchlevel;
+    int     name_len;
+    ptr_t   name;   //char*
+    int     date_len;
+    ptr_t   date;   //char*
+    int     desc_len;
+    ptr_t   desc;   //char*
+} my_drmVersion_32_t;
+void* inplace_drmVersion_shrink(void* a)
+{
+    if(a) {
+        my_drmVersion_t* src = a;
+        my_drmVersion_32_t* dst = a;
+        dst->version_major = src->version_major;
+        dst->version_minor = src->version_minor;
+        dst->version_patchlevel = src->version_patchlevel;
+        dst->name_len = src->name_len;
+        dst->name = to_ptrv(src->name);
+        dst->date_len = src->date_len;
+        dst->date = to_ptrv(src->date);
+        dst->desc_len = src->desc_len;
+        dst->desc = to_ptrv(src->desc);
+    }
+    return a;
+}
+void* inplace_drmVersion_enlarge(void* a)
+{
+    if(a) {
+        my_drmVersion_32_t* src = a;
+        my_drmVersion_t* dst = a;
+        dst->desc = from_ptrv(src->desc);
+        dst->desc_len = src->desc_len;
+        dst->date = from_ptrv(src->date);
+        dst->date_len = src->date_len;
+        dst->name = from_ptrv(src->name);
+        dst->name_len = src->name_len;
+        dst->version_patchlevel = src->version_patchlevel;
+        dst->version_minor = src->version_minor;
+        dst->version_major = src->version_major;
+    }
+    return a;
+}
+
+EXPORT void* my32_drmGetVersion(x64emu_t* emu, int fd)
+{
+    return inplace_drmVersion_shrink(my->drmGetVersion(fd));
+}
+
+EXPORT void my32_drmFreeVersion(x64emu_t* emu, void* v)
+{
+    my->drmFreeVersion(inplace_drmVersion_enlarge(v));
+}
+
+#include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedlibdrm_private.h b/src/wrapped32/wrappedlibdrm_private.h
new file mode 100644
index 00000000..c56e0c4c
--- /dev/null
+++ b/src/wrapped32/wrappedlibdrm_private.h
@@ -0,0 +1,199 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh...
+#endif
+
+GO(drmAddBufs, iFiiiui)
+GO(drmAddContextPrivateMapping, iFiuu)
+GO(drmAddContextTag, iFiup)
+GO(drmAddMap, iFiuuuup)
+GO(drmAgpAcquire, iFi)
+//GO(drmAgpAlloc, iFiLLbL_p)
+GO(drmAgpBase, LFi)
+GO(drmAgpBind, iFiuL)
+GO(drmAgpDeviceId, uFi)
+GO(drmAgpEnable, iFiL)
+GO(drmAgpFree, iFiu)
+GO(drmAgpGetMode, LFi)
+GO(drmAgpMemoryAvail, LFi)
+GO(drmAgpMemoryUsed, LFi)
+GO(drmAgpRelease, iFi)
+GO(drmAgpSize, LFi)
+GO(drmAgpUnbind, iFiu)
+GO(drmAgpVendorId, uFi)
+GO(drmAgpVersionMajor, iFi)
+GO(drmAgpVersionMinor, iFi)
+GO(drmAuthMagic, iFiu)
+GO(drmAvailable, iFv)
+GO(drmCheckModesettingSupported, iFp)
+GO(drmClose, iFi)
+GO(drmCloseOnce, vFi)
+GO(drmCommandNone, iFiL)
+GO(drmCommandRead, iFiLpL)
+GO(drmCommandWrite, iFiLpL)
+GO(drmCommandWriteRead, iFiLpL)
+GO(drmCreateContext, iFip)
+GO(drmCreateDrawable, iFip)
+GO(drmCrtcGetSequence, iFiupp)
+GO(drmCrtcQueueSequence, iFiuuUpU)
+GO(drmCtlInstHandler, iFii)
+GO(drmCtlUninstHandler, iFi)
+GO(drmDelContextTag, iFiu)
+GO(drmDestroyContext, iFiu)
+GO(drmDestroyDrawable, iFiu)
+//GO(drmDevicesEqual, 
+//GO(drmDMA, iFibuippuiippi_)
+GO(drmDropMaster, iFi)
+GO(drmError, iFip)
+GO(drmFinish, iFiiu)
+GO(drmFree, vFp)
+GO(drmFreeBufs, iFiip)
+GO(drmFreeBusid, vFp)
+//GOM(drmFreeDevice, vFEbp_)
+//GOM(drmFreeDevices, vFEbp_i)
+GO(drmFreeReservedContextList, vFp)
+GOM(drmFreeVersion, vFEp)
+//GOM(drmGetBufInfo, pFEi)
+GO(drmGetBusid, pFi)
+GO(drmGetCap, iFiUp)
+//GO(drmGetClient, iFiipppbL_bL_)
+GO(drmGetContextFlags, iFiup)
+GO(drmGetContextPrivateMapping, iFiup)
+GO(drmGetContextTag, pFiu)
+//GOM(drmGetDevice, iFEibp_)
+//GOM(drmGetDevice2, iFEiubp_)
+GO(drmGetDeviceNameFromFd, pFi)
+GO(drmGetDeviceNameFromFd2, pFi)
+//GOM(drmGetDevices, iFEbp_i)
+//GOM(drmGetDevices2, iFEubp_i)
+//GOM(drmGetEntry, pFEi)
+GO(drmGetHashTable, pFv)
+GO(drmGetInterruptFromBusID, iFiiii)
+//GOM(drmGetLibVersion, pFEi)
+GO(drmGetLock, iFiuu)
+GO(drmGetMagic, iFip)
+GO(drmGetMap, iFiipppppp)
+GO(drmGetNodeTypeFromFd, iFi)
+GO(drmGetPrimaryDeviceNameFromFd, pFi)
+GO(drmGetRenderDeviceNameFromFd, pFi)
+GO(drmGetReservedContextList, pFip)
+//GO(drmGetStats, 
+GOM(drmGetVersion, pFEi)
+//GOM(drmHandleEvent, iFEibipppp_)
+GO(drmHashCreate, pFv)
+GO(drmHashDelete, iFpL)
+GO(drmHashDestroy, iFp)
+//GO(drmHashFirst, iFpbL_bp_)
+GO(drmHashInsert, iFpLp)
+//GO(drmHashLookup, iFpLbp_)
+//GO(drmHashNext, iFpbL_bp_)
+GO(drmIoctl, iFiLp)
+GO(drmIsMaster, iFi)
+GO(drmMalloc, pFi)
+//GO(drmMap, iFiuubp_)
+//GOM(drmMapBufs, pFEi)
+GO(drmMarkBufs, iFidd)
+GO(drmModeAddFB, iFiuuCCuup)
+GO(drmModeAddFB2, iFiuuuppppu)
+GO(drmModeAddFB2WithModifiers, iFiuuupppppu)
+GO(drmModeAtomicAddProperty, iFpuuU)
+GO(drmModeAtomicAlloc, pFv)
+GO(drmModeAtomicCommit, iFipup)
+GO(drmModeAtomicDuplicate, pFp)
+GO(drmModeAtomicFree, vFp)
+GO(drmModeAtomicGetCursor, iFp)
+GO(drmModeAtomicMerge, iFpp)
+GO(drmModeAtomicSetCursor, vFpi)
+GO(drmModeAttachMode, iFiup)
+GO(drmModeConnectorSetProperty, iFiuuU)
+GO(drmModeCreateLease, iFipiip)
+GO(drmModeCreatePropertyBlob, iFipLp)
+GO(drmModeCrtcGetGamma, iFiuuppp)
+GO(drmModeCrtcSetGamma, iFiuuppp)
+GO(drmModeDestroyPropertyBlob, iFiu)
+GO(drmModeDetachMode, iFiup)
+GO(drmModeDirtyFB, iFiupu)
+//GO(drmModeFreeConnector, vFbuuuuuuuuipippip_)
+GO(drmModeFreeCrtc, vFp)
+GO(drmModeFreeEncoder, vFp)
+GO(drmModeFreeFB, vFp)
+GO(drmModeFreeModeInfo, vFp)
+//GO(drmModeFreeObjectProperties, vFbupp_)
+//GO(drmModeFreePlane, vFbupuuuuuuuuu_)
+//GO(drmModeFreePlaneResources, vFbup_)
+//GO(drmModeFreeProperty, vFbuuccccccccccccccccccccccccccccccccipipip_)
+//GO(drmModeFreePropertyBlob, vFbuup_)
+//GO(drmModeFreeResources, vFbipipipipuuuu_)
+//GOM(drmModeGetConnector, pFEiu)
+//GOM(drmModeGetConnectorCurrent, pFEiu)
+GO(drmModeGetCrtc, pFiu)
+GO(drmModeGetEncoder, pFiu)
+GO(drmModeGetFB, pFiu)
+//GO(drmModeGetLease, 
+//GOM(drmModeGetPlane, pFEiu)
+//GOM(drmModeGetPlaneResources, pFEi)
+//GOM(drmModeGetProperty, pFEiu)
+//GOM(drmModeGetPropertyBlob, pFEiu)
+//GOM(drmModeGetResources, pFEi)
+//GO(drmModeListLessees, 
+GO(drmModeMoveCursor, iFiuii)
+//GOM(drmModeObjectGetProperties, pFEiuu)
+GO(drmModeObjectSetProperty, iFiuuuU)
+GO(drmModePageFlip, iFiuuup)
+GO(drmModePageFlipTarget, iFiuuupu)
+GO(drmModeRevokeLease, iFiu)
+GO(drmModeRmFB, iFiu)
+GO(drmModeSetCrtc, iFiuuuupip)
+GO(drmModeSetCursor, iFiuuuu)
+GO(drmModeSetCursor2, iFiuuuuii)
+GO(drmModeSetPlane, iFiuuuuiiuuuuuu)
+//GOM(drmMsg, vFEpV)
+GO(drmOpen, iFpp)
+GO(drmOpenControl, iFi)
+GO(drmOpenOnce, iFppp)
+GO(drmOpenOnceWithType, iFppi)
+GO(drmOpenRender, iFi)
+GO(drmOpenWithType, iFppi)
+GO(drmPrimeFDToHandle, iFiip)
+GO(drmPrimeHandleToFD, iFiuup)
+GO(drmRandom, LFp)
+GO(drmRandomCreate, pFL)
+GO(drmRandomDestroy, iFp)
+GO(drmRandomDouble, dFp)
+GO(drmRmMap, iFiu)
+GO(drmScatterGatherAlloc, iFiLp)
+GO(drmScatterGatherFree, iFiu)
+GO(drmSetBusid, iFip)
+GO(drmSetClientCap, iFiUU)
+GO(drmSetContextFlags, iFiuu)
+GO(drmSetInterfaceVersion, iFip)
+GO(drmSetMaster, iFi)
+//GOM(drmSetServerInfo, vFEbppp_)
+GO(drmSLCreate, pFv)
+GO(drmSLDelete, iFpL)
+GO(drmSLDestroy, iFp)
+GO(drmSLDump, vFp)
+//GO(drmSLFirst, iFpbL_bp_)
+GO(drmSLInsert, iFpLp)
+//GO(drmSLLookup, iFpLbp_)
+//GO(drmSLLookupNeighbors, iFpLbL_bp_bL_bp_)
+//GO(drmSLNext, iFpbL_bp_)
+GO(drmSwitchToContext, iFiu)
+GO(drmSyncobjCreate, iFiup)
+GO(drmSyncobjDestroy, iFiu)
+GO(drmSyncobjExportSyncFile, iFiup)
+GO(drmSyncobjFDToHandle, iFiip)
+GO(drmSyncobjHandleToFD, iFiup)
+GO(drmSyncobjImportSyncFile, iFiui)
+GO(drmSyncobjQuery, iFippu)
+GO(drmSyncobjQuery2, iFippuu)
+GO(drmSyncobjReset, iFipu)
+GO(drmSyncobjSignal, iFipu)
+GO(drmSyncobjTimelineSignal, iFippu)
+GO(drmSyncobjTimelineWait, iFippuIup)
+GO(drmSyncobjTransfer, iFiuUuUu)
+GO(drmSyncobjWait, iFipuIup)
+GO(drmUnlock, iFiu)
+GO(drmUnmap, iFpu)
+//GOM(drmUnmapBufs, iFEbip_)
+GO(drmUpdateDrawableInfo, iFiuuup)
+//GO(drmWaitVBlank,