about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-09-02 17:34:06 +0800
committerGitHub <noreply@github.com>2025-09-02 11:34:06 +0200
commit994ce41adc2efb811d890dfd28c1d37841630b01 (patch)
tree391bbbd6996e268448681523bda913b85291cdc7 /src
parentd8905272818e6355bcebc578c28bd7ac4a0a5975 (diff)
downloadbox64-994ce41adc2efb811d890dfd28c1d37841630b01.tar.gz
box64-994ce41adc2efb811d890dfd28c1d37841630b01.zip
[WRAPPER] Wrapped a bunch of symbols (#2997)
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64printer.c48
-rw-r--r--src/wrapped/generated/functions_list.txt28
-rw-r--r--src/wrapped/generated/wrappedlibdrmtypes.h4
-rw-r--r--src/wrapped/generated/wrappedpulsetypes.h1
-rw-r--r--src/wrapped/generated/wrapper.c86
-rw-r--r--src/wrapped/generated/wrapper.h25
-rw-r--r--src/wrapped/wrappeddecor0_private.h114
-rw-r--r--src/wrapped/wrappedlibasound_private.h30
-rw-r--r--src/wrapped/wrappedlibbsd_private.h4
-rw-r--r--src/wrapped/wrappedlibdrm.c92
-rw-r--r--src/wrapped/wrappedlibdrm_private.h295
-rw-r--r--src/wrapped/wrappedpulse.c31
-rw-r--r--src/wrapped/wrappedpulse_private.h1
13 files changed, 530 insertions, 229 deletions
diff --git a/src/emu/x64printer.c b/src/emu/x64printer.c
index a226af06..d186aa0d 100644
--- a/src/emu/x64printer.c
+++ b/src/emu/x64printer.c
@@ -363,6 +363,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint64_t)R_RSI);
     } else if (w == iFil) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (intptr_t)R_RSI);
+    } else if (w == iFiL) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uintptr_t)R_RSI);
     } else if (w == iFip) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI);
     } else if (w == iFWW) {
@@ -961,8 +963,16 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX);
     } else if (w == iFiuu) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX);
+    } else if (w == iFiuL) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX);
     } else if (w == iFiup) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX);
+    } else if (w == iFiUU) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu64 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX);
+    } else if (w == iFiUp) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu64 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint64_t)R_RSI, (void*)R_RDX);
+    } else if (w == iFidd) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIf ", %" PRIf ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0]);
     } else if (w == iFill) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi64 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX);
     } else if (w == iFilp) {
@@ -1373,6 +1383,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIf ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, emu->xmm[0].d[0]);
     } else if (w == pFiip) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX);
+    } else if (w == pFiuu) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX);
     } else if (w == pFiup) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX);
     } else if (w == pFiLL) {
@@ -1921,8 +1933,14 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu16 ", %" PRIi32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint16_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX);
     } else if (w == iFiuwp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIi16 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (int16_t)R_RDX, (void*)R_RCX);
+    } else if (w == iFiuii) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX);
+    } else if (w == iFiuuU) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint64_t)R_RCX);
     } else if (w == iFiuup) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX);
+    } else if (w == iFiupu) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIp ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX);
     } else if (w == iFiupp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX);
     } else if (w == iFilli) {
@@ -1939,6 +1957,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIu32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX);
     } else if (w == iFipuU) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIu32 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint64_t)R_RCX);
+    } else if (w == iFipup) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIu32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX);
     } else if (w == iFipLi) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIu64 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX);
     } else if (w == iFipLu) {
@@ -2063,6 +2083,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIu32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX);
     } else if (w == iFpuuu) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX);
+    } else if (w == iFpuuU) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIu32 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint64_t)R_RCX);
     } else if (w == iFpuul) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIu32 ", %" PRIu32 ", %" PRIi64 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (intptr_t)R_RCX);
     } else if (w == iFpuuL) {
@@ -3077,6 +3099,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX);
     } else if (w == iFiiiip) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8);
+    } else if (w == iFiiiui) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIu32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8);
     } else if (w == iFiiipu) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIp ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8);
     } else if (w == iFiiipp) {
@@ -3087,14 +3111,20 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8);
     } else if (w == iFiuuuu) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8);
+    } else if (w == iFiuuuU) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint64_t)R_R8);
     } else if (w == iFiuuup) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8);
     } else if (w == iFiuUip) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu64 ", %" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint64_t)R_RDX, (int32_t)R_RCX, (void*)R_R8);
     } else if (w == iFillLL) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi64 ", %" PRIi64 ", %" PRIu64 ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8);
+    } else if (w == iFiLLpp) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu64 ", %" PRIu64 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8);
     } else if (w == iFipiii) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8);
+    } else if (w == iFipiip) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIi32 ", %" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8);
     } else if (w == iFipipi) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIi32 ", %" PRIp ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8);
     } else if (w == iFipipu) {
@@ -4069,6 +4099,10 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu16 ", %" PRIi32 ", %" PRIi32 ", %" PRIp ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint16_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9);
     } else if (w == iFiuuuup) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9);
+    } else if (w == iFiuuupu) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9);
+    } else if (w == iFiuuUpU) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu64 ", %" PRIp ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint64_t)R_RCX, (void*)R_R8, (uint64_t)R_R9);
     } else if (w == iFiuuppp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9);
     } else if (w == iFiuUuUu) {
@@ -4897,6 +4931,10 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIu64 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9);
     } else if (w == iFEpppppp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9);
+    } else if (w == iFiippppp) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8));
+    } else if (w == iFiuuuuii) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8));
     } else if (w == iFiupuuup) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIp ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8));
     } else if (w == iFiupuppp) {
@@ -5429,6 +5467,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8));
     } else if (w == iFiiupiupi) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIu32 ", %" PRIp ", %" PRIi32 ", %" PRIu32 ", %" PRIp ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16));
+    } else if (w == iFiipppppp) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIi32 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16));
     } else if (w == iFiuuCCuup) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu8 ", %" PRIu8 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16));
     } else if (w == iFiuuuupip) {
@@ -5789,6 +5829,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16));
     } else if (w == iFEppPPPPPP) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48));
+    } else if (w == iFiuuuppppu) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uint32_t*)(R_RSP + 24));
     } else if (w == iFipiipippi) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIi32 ", %" PRIi32 ", %" PRIp ", %" PRIi32 ", %" PRIp ", %" PRIp ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24));
     } else if (w == iFuiiuuiiip) {
@@ -6003,6 +6045,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIi32 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24));
     } else if (w == iFEpppppppip) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24));
+    } else if (w == iFiuuupppppu) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(uint32_t*)(R_RSP + 32));
     } else if (w == iFuiiiuuiiip) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32));
     } else if (w == iFpiiLiiipip) {
@@ -6283,6 +6327,8 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIu32 ", %" PRIu32 ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ", %" PRIi32 ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48), *(int32_t*)(R_RSP + 56));
     } else if (w == vFppppppppppppp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56));
+    } else if (w == iFiuuuuiiuuuuuu) {
+        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIi32 ", %" PRIi32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(uint32_t*)(R_RSP + 48), *(uint32_t*)(R_RSP + 56));
     } else if (w == iFddddpppddpppp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIf ", %" PRIf ", %" PRIf ", %" PRIf ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIf ", %" PRIf ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, emu->xmm[4].d[0], emu->xmm[5].d[0], (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8));
     } else if (w == iFpippuuuiipppp) {
@@ -6390,8 +6436,6 @@ void x64Print(x64emu_t* emu, char* buff, size_t buffsz, const char* func, int ti
     } else if (w == iFpppppppppppppppppppppppppppppppppp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96), *(void**)(R_RSP + 104), *(void**)(R_RSP + 112), *(void**)(R_RSP + 120), *(void**)(R_RSP + 128), *(void**)(R_RSP + 136), *(void**)(R_RSP + 144), *(void**)(R_RSP + 152), *(void**)(R_RSP + 160), *(void**)(R_RSP + 168), *(void**)(R_RSP + 176), *(void**)(R_RSP + 184), *(void**)(R_RSP + 192), *(void**)(R_RSP + 200), *(void**)(R_RSP + 208), *(void**)(R_RSP + 216), *(void**)(R_RSP + 224));
 #if defined(NOALIGN)
-    } else if (w == iFipiip) {
-        snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIi32 ", %" PRIi32 ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8);
     } else if (w == iFipipp) {
         snprintf(buff, buffsz, "%04d|%p: Calling %s(%" PRIi32 ", %" PRIp ", %" PRIi32 ", %" PRIp ", %" PRIp ")", tid, *(void**)(R_RSP), func, (int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8);
 #endif
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 140feef3..4a291c2b 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -202,6 +202,7 @@
 #() iFiu
 #() iFiU
 #() iFil
+#() iFiL
 #() iFip
 #() iFiS
 #() iFWW
@@ -534,7 +535,11 @@
 #() iFiCC
 #() iFiui
 #() iFiuu
+#() iFiuL
 #() iFiup
+#() iFiUU
+#() iFiUp
+#() iFidd
 #() iFill
 #() iFilp
 #() iFiLi
@@ -615,6 +620,7 @@
 #() iFppp
 #() iFpOi
 #() iFpOu
+#() iFpSi
 #() iFpSu
 #() iFpSp
 #() iFpHH
@@ -773,6 +779,7 @@
 #() pFiiu
 #() pFiid
 #() pFiip
+#() pFiuu
 #() pFiup
 #() pFiLL
 #() pFipi
@@ -1079,7 +1086,10 @@
 #() iFiIIu
 #() iFiWii
 #() iFiuwp
+#() iFiuii
+#() iFiuuU
 #() iFiuup
+#() iFiupu
 #() iFiupp
 #() iFilli
 #() iFiLpL
@@ -1088,6 +1098,7 @@
 #() iFipWp
 #() iFipui
 #() iFipuU
+#() iFipup
 #() iFipLi
 #() iFipLu
 #() iFipLp
@@ -1151,6 +1162,7 @@
 #() iFpuWp
 #() iFpuui
 #() iFpuuu
+#() iFpuuU
 #() iFpuul
 #() iFpuuL
 #() iFpuup
@@ -1709,15 +1721,19 @@
 #() iFEpppV
 #() iFEpppA
 #() iFiiiip
+#() iFiiiui
 #() iFiiipu
 #() iFiiipp
 #() iFiiupp
 #() iFiippp
 #() iFiuuuu
+#() iFiuuuU
 #() iFiuuup
 #() iFiuUip
 #() iFillLL
+#() iFiLLpp
 #() iFipiii
+#() iFipiip
 #() iFipipi
 #() iFipipu
 #() iFipuip
@@ -2237,6 +2253,8 @@
 #() iFiippiu
 #() iFiWiipi
 #() iFiuuuup
+#() iFiuuupu
+#() iFiuuUpU
 #() iFiuuppp
 #() iFiuUuUu
 #() iFilpppp
@@ -2675,6 +2693,8 @@
 #() iFEpppLpp
 #() iFEpppppL
 #() iFEpppppp
+#() iFiippppp
+#() iFiuuuuii
 #() iFiupuuup
 #() iFiupuppp
 #() iFipupupi
@@ -2958,6 +2978,7 @@
 #() iFEpppppuu
 #() iFEppppppp
 #() iFiiupiupi
+#() iFiipppppp
 #() iFiuuCCuup
 #() iFiuuuupip
 #() iFipippppp
@@ -3152,6 +3173,7 @@
 #() iFEpppppupp
 #() iFEppppppuu
 #() iFEppPPPPPP
+#() iFiuuuppppu
 #() iFipiipippi
 #() iFuiiuuiiip
 #() iFuiiupiiup
@@ -3269,6 +3291,7 @@
 #() iFEpupppLppL
 #() iFEppppppipp
 #() iFEpppppppip
+#() iFiuuupppppu
 #() iFuiiiuuiiip
 #() iFpiiLiiipip
 #() iFpiLLiiipip
@@ -3422,6 +3445,7 @@
 #() vFppuuppiiiiuii
 #() vFppuupppuiiiii
 #() vFppppppppppppp
+#() iFiuuuuiiuuuuuu
 #() iFddddpppddpppp
 #() iFpippuuuiipppp
 #() iFpLLlliiLppppp
@@ -3481,7 +3505,6 @@
 #() vFpppppppppppppppppppppppp
 #() pFpupuupppppppppppppppppppp
 #() iFpppppppppppppppppppppppppppppppppp
-#defined(NOALIGN) iFipiip
 #defined(NOALIGN) iFipipp
 #!defined(NOALIGN) iFELp
 #!defined(NOALIGN) iFEppu
@@ -4938,6 +4961,8 @@ wrappedlibdl:
 wrappedlibdrm:
 - vFpV:
   - drmMsg
+- iFip:
+  - drmHandleEvent
 wrappedlibdrmamdgpu:
 wrappedlibegl:
 - pFp:
@@ -5737,6 +5762,7 @@ wrappedpulse:
   - pa_context_set_subscribe_callback
   - pa_mainloop_api_once
   - pa_mainloop_set_poll_func
+  - pa_operation_set_state_callback
   - pa_stream_set_buffer_attr_callback
   - pa_stream_set_event_callback
   - pa_stream_set_latency_update_callback
diff --git a/src/wrapped/generated/wrappedlibdrmtypes.h b/src/wrapped/generated/wrappedlibdrmtypes.h
index 101f4106..5f38e85f 100644
--- a/src/wrapped/generated/wrappedlibdrmtypes.h
+++ b/src/wrapped/generated/wrappedlibdrmtypes.h
@@ -12,8 +12,10 @@
 #endif
 
 typedef void (*vFpV_t)(void*, ...);
+typedef int32_t (*iFip_t)(int32_t, void*);
 
 #define SUPER() ADDED_FUNCTIONS() \
-	GO(drmMsg, vFpV_t)
+	GO(drmMsg, vFpV_t) \
+	GO(drmHandleEvent, iFip_t)
 
 #endif // __wrappedlibdrmTYPES_H_
diff --git a/src/wrapped/generated/wrappedpulsetypes.h b/src/wrapped/generated/wrappedpulsetypes.h
index 85e688e4..a8c8e4b1 100644
--- a/src/wrapped/generated/wrappedpulsetypes.h
+++ b/src/wrapped/generated/wrappedpulsetypes.h
@@ -46,6 +46,7 @@ typedef void* (*pFpiuCppp_t)(void*, int32_t, uint32_t, uint8_t, void*, void*, vo
 	GO(pa_context_set_subscribe_callback, vFppp_t) \
 	GO(pa_mainloop_api_once, vFppp_t) \
 	GO(pa_mainloop_set_poll_func, vFppp_t) \
+	GO(pa_operation_set_state_callback, vFppp_t) \
 	GO(pa_stream_set_buffer_attr_callback, vFppp_t) \
 	GO(pa_stream_set_event_callback, vFppp_t) \
 	GO(pa_stream_set_latency_update_callback, vFppp_t) \
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index cf94ae33..d1c7bdc9 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -247,6 +247,7 @@ typedef int32_t (*iFiC_t)(int32_t, uint8_t);
 typedef int32_t (*iFiu_t)(int32_t, uint32_t);
 typedef int32_t (*iFiU_t)(int32_t, uint64_t);
 typedef int32_t (*iFil_t)(int32_t, intptr_t);
+typedef int32_t (*iFiL_t)(int32_t, uintptr_t);
 typedef int32_t (*iFip_t)(int32_t, void*);
 typedef int32_t (*iFiS_t)(int32_t, void*);
 typedef int32_t (*iFWW_t)(uint16_t, uint16_t);
@@ -568,7 +569,11 @@ typedef int32_t (*iFiII_t)(int32_t, int64_t, int64_t);
 typedef int32_t (*iFiCC_t)(int32_t, uint8_t, uint8_t);
 typedef int32_t (*iFiui_t)(int32_t, uint32_t, int32_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 (*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 (*iFill_t)(int32_t, intptr_t, intptr_t);
 typedef int32_t (*iFilp_t)(int32_t, intptr_t, void*);
 typedef int32_t (*iFiLi_t)(int32_t, uintptr_t, int32_t);
@@ -649,6 +654,7 @@ typedef int32_t (*iFppL_t)(void*, void*, uintptr_t);
 typedef int32_t (*iFppp_t)(void*, void*, void*);
 typedef int32_t (*iFpOi_t)(void*, int32_t, int32_t);
 typedef int32_t (*iFpOu_t)(void*, int32_t, uint32_t);
+typedef int32_t (*iFpSi_t)(void*, void*, int32_t);
 typedef int32_t (*iFpSu_t)(void*, void*, uint32_t);
 typedef int32_t (*iFpSp_t)(void*, void*, void*);
 typedef int32_t (*iFpHH_t)(void*, unsigned __int128, unsigned __int128);
@@ -804,6 +810,7 @@ typedef void* (*pFiii_t)(int32_t, int32_t, int32_t);
 typedef void* (*pFiiu_t)(int32_t, int32_t, uint32_t);
 typedef void* (*pFiid_t)(int32_t, int32_t, double);
 typedef void* (*pFiip_t)(int32_t, int32_t, void*);
+typedef void* (*pFiuu_t)(int32_t, uint32_t, uint32_t);
 typedef void* (*pFiup_t)(int32_t, uint32_t, void*);
 typedef void* (*pFiLL_t)(int32_t, uintptr_t, uintptr_t);
 typedef void* (*pFipi_t)(int32_t, void*, int32_t);
@@ -1109,7 +1116,10 @@ typedef int32_t (*iFiIIi_t)(int32_t, int64_t, int64_t, int32_t);
 typedef int32_t (*iFiIIu_t)(int32_t, int64_t, int64_t, uint32_t);
 typedef int32_t (*iFiWii_t)(int32_t, uint16_t, int32_t, int32_t);
 typedef int32_t (*iFiuwp_t)(int32_t, uint32_t, int16_t, void*);
+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 (*iFilli_t)(int32_t, intptr_t, intptr_t, int32_t);
 typedef int32_t (*iFiLpL_t)(int32_t, uintptr_t, void*, uintptr_t);
@@ -1118,6 +1128,7 @@ typedef int32_t (*iFipip_t)(int32_t, void*, int32_t, void*);
 typedef int32_t (*iFipWp_t)(int32_t, void*, uint16_t, void*);
 typedef int32_t (*iFipui_t)(int32_t, void*, uint32_t, int32_t);
 typedef int32_t (*iFipuU_t)(int32_t, void*, uint32_t, uint64_t);
+typedef int32_t (*iFipup_t)(int32_t, void*, uint32_t, void*);
 typedef int32_t (*iFipLi_t)(int32_t, void*, uintptr_t, int32_t);
 typedef int32_t (*iFipLu_t)(int32_t, void*, uintptr_t, uint32_t);
 typedef int32_t (*iFipLp_t)(int32_t, void*, uintptr_t, void*);
@@ -1181,6 +1192,7 @@ typedef int32_t (*iFpuip_t)(void*, uint32_t, int32_t, void*);
 typedef int32_t (*iFpuWp_t)(void*, uint32_t, uint16_t, void*);
 typedef int32_t (*iFpuui_t)(void*, uint32_t, uint32_t, int32_t);
 typedef int32_t (*iFpuuu_t)(void*, uint32_t, uint32_t, uint32_t);
+typedef int32_t (*iFpuuU_t)(void*, uint32_t, uint32_t, uint64_t);
 typedef int32_t (*iFpuul_t)(void*, uint32_t, uint32_t, intptr_t);
 typedef int32_t (*iFpuuL_t)(void*, uint32_t, uint32_t, uintptr_t);
 typedef int32_t (*iFpuup_t)(void*, uint32_t, uint32_t, void*);
@@ -1737,15 +1749,19 @@ typedef int32_t (*iFEpppp_t)(x64emu_t*, void*, void*, void*, void*);
 typedef int32_t (*iFEpppV_t)(x64emu_t*, void*, void*, void*, void*);
 typedef int32_t (*iFEpppA_t)(x64emu_t*, void*, void*, void*, void*);
 typedef int32_t (*iFiiiip_t)(int32_t, int32_t, int32_t, int32_t, void*);
+typedef int32_t (*iFiiiui_t)(int32_t, int32_t, int32_t, uint32_t, int32_t);
 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*);
 typedef int32_t (*iFiiupp_t)(int32_t, int32_t, uint32_t, void*, void*);
 typedef int32_t (*iFiippp_t)(int32_t, int32_t, void*, 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 (*iFiuUip_t)(int32_t, uint32_t, uint64_t, int32_t, void*);
 typedef int32_t (*iFillLL_t)(int32_t, intptr_t, intptr_t, uintptr_t, uintptr_t);
+typedef int32_t (*iFiLLpp_t)(int32_t, uintptr_t, uintptr_t, void*, void*);
 typedef int32_t (*iFipiii_t)(int32_t, void*, int32_t, int32_t, int32_t);
+typedef int32_t (*iFipiip_t)(int32_t, void*, int32_t, int32_t, void*);
 typedef int32_t (*iFipipi_t)(int32_t, void*, int32_t, void*, int32_t);
 typedef int32_t (*iFipipu_t)(int32_t, void*, int32_t, void*, uint32_t);
 typedef int32_t (*iFipuip_t)(int32_t, void*, uint32_t, int32_t, void*);
@@ -2265,6 +2281,8 @@ typedef int32_t (*iFiiiuwp_t)(int32_t, int32_t, int32_t, uint32_t, int16_t, void
 typedef int32_t (*iFiippiu_t)(int32_t, int32_t, void*, void*, int32_t, uint32_t);
 typedef int32_t (*iFiWiipi_t)(int32_t, uint16_t, int32_t, int32_t, void*, int32_t);
 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 (*iFilpppp_t)(int32_t, intptr_t, void*, void*, void*, void*);
@@ -2702,6 +2720,8 @@ typedef int32_t (*iFEppLpIu_t)(x64emu_t*, void*, void*, uintptr_t, void*, int64_
 typedef int32_t (*iFEpppLpp_t)(x64emu_t*, void*, void*, void*, uintptr_t, void*, void*);
 typedef int32_t (*iFEpppppL_t)(x64emu_t*, void*, void*, void*, void*, void*, uintptr_t);
 typedef int32_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFiippppp_t)(int32_t, int32_t, 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 (*iFiupuuup_t)(int32_t, uint32_t, void*, uint32_t, uint32_t, uint32_t, void*);
 typedef int32_t (*iFiupuppp_t)(int32_t, uint32_t, void*, uint32_t, void*, void*, void*);
 typedef int32_t (*iFipupupi_t)(int32_t, void*, uint32_t, void*, uint32_t, void*, int32_t);
@@ -2985,6 +3005,7 @@ typedef int32_t (*iFEppppLpp_t)(x64emu_t*, void*, void*, void*, void*, uintptr_t
 typedef int32_t (*iFEpppppuu_t)(x64emu_t*, void*, void*, void*, void*, void*, uint32_t, uint32_t);
 typedef int32_t (*iFEppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFiiupiupi_t)(int32_t, int32_t, uint32_t, void*, int32_t, uint32_t, void*, int32_t);
+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 (*iFipippppp_t)(int32_t, void*, int32_t, void*, void*, void*, void*, void*);
@@ -3178,6 +3199,7 @@ typedef int32_t (*iFEppplPPPP_t)(x64emu_t*, void*, void*, void*, intptr_t, void*
 typedef int32_t (*iFEpppppupp_t)(x64emu_t*, void*, void*, void*, void*, void*, uint32_t, void*, void*);
 typedef int32_t (*iFEppppppuu_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, uint32_t, uint32_t);
 typedef int32_t (*iFEppPPPPPP_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFiuuuppppu_t)(int32_t, uint32_t, uint32_t, uint32_t, void*, void*, void*, void*, uint32_t);
 typedef int32_t (*iFipiipippi_t)(int32_t, void*, int32_t, int32_t, void*, int32_t, void*, void*, int32_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*);
@@ -3295,6 +3317,7 @@ typedef int32_t (*iFEpiiiiippp_t)(x64emu_t*, void*, int32_t, int32_t, int32_t, i
 typedef int32_t (*iFEpupppLppL_t)(x64emu_t*, void*, uint32_t, void*, void*, void*, uintptr_t, void*, void*, uintptr_t);
 typedef int32_t (*iFEppppppipp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, int32_t, void*, void*);
 typedef int32_t (*iFEpppppppip_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*, int32_t, void*);
+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 (*iFpiiLiiipip_t)(void*, int32_t, int32_t, uintptr_t, int32_t, int32_t, int32_t, void*, int32_t, void*);
 typedef int32_t (*iFpiLLiiipip_t)(void*, int32_t, uintptr_t, uintptr_t, int32_t, int32_t, int32_t, void*, int32_t, void*);
@@ -3448,6 +3471,7 @@ typedef void (*vFppiiiiiiuiuii_t)(void*, void*, int32_t, int32_t, int32_t, int32
 typedef void (*vFppuuppiiiiuii_t)(void*, void*, uint32_t, uint32_t, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t, int32_t);
 typedef void (*vFppuupppuiiiii_t)(void*, void*, uint32_t, uint32_t, void*, void*, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, 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 (*iFpippuuuiipppp_t)(void*, int32_t, void*, void*, uint32_t, uint32_t, uint32_t, int32_t, int32_t, void*, void*, void*, void*);
 typedef int32_t (*iFpLLlliiLppppp_t)(void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, int32_t, uintptr_t, void*, void*, void*, void*, void*);
@@ -3563,7 +3587,6 @@ typedef void (*vFppippDpDc_t)(void*, void*, int32_t, void*, void*, double, void*
 #endif
 
 #if defined(NOALIGN)
-typedef int32_t (*iFipiip_t)(int32_t, void*, int32_t, int32_t, void*);
 typedef int32_t (*iFipipp_t)(int32_t, void*, int32_t, void*, void*);
 #endif
 
@@ -3787,6 +3810,7 @@ void iFiC(x64emu_t *emu, uintptr_t fcn) { iFiC_t fn = (iFiC_t)fcn; R_RAX=(uint32
 void iFiu(x64emu_t *emu, uintptr_t fcn) { iFiu_t fn = (iFiu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI); }
 void iFiU(x64emu_t *emu, uintptr_t fcn) { iFiU_t fn = (iFiU_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint64_t)R_RSI); }
 void iFil(x64emu_t *emu, uintptr_t fcn) { iFil_t fn = (iFil_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI); }
+void iFiL(x64emu_t *emu, uintptr_t fcn) { iFiL_t fn = (iFiL_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uintptr_t)R_RSI); }
 void iFip(x64emu_t *emu, uintptr_t fcn) { iFip_t fn = (iFip_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI); }
 void iFiS(x64emu_t *emu, uintptr_t fcn) { iFiS_t fn = (iFiS_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, io_convert((void*)R_RSI)); }
 void iFWW(x64emu_t *emu, uintptr_t fcn) { iFWW_t fn = (iFWW_t)fcn; R_RAX=(uint32_t)fn((uint16_t)R_RDI, (uint16_t)R_RSI); }
@@ -4108,7 +4132,11 @@ void iFiII(x64emu_t *emu, uintptr_t fcn) { iFiII_t fn = (iFiII_t)fcn; R_RAX=(uin
 void iFiCC(x64emu_t *emu, uintptr_t fcn) { iFiCC_t fn = (iFiCC_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX); }
 void iFiui(x64emu_t *emu, uintptr_t fcn) { iFiui_t fn = (iFiui_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX); }
 void iFiuu(x64emu_t *emu, uintptr_t fcn) { iFiuu_t fn = (iFiuu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); }
+void iFiuL(x64emu_t *emu, uintptr_t fcn) { iFiuL_t fn = (iFiuL_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX); }
 void iFiup(x64emu_t *emu, uintptr_t fcn) { iFiup_t fn = (iFiup_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
+void iFiUU(x64emu_t *emu, uintptr_t fcn) { iFiUU_t fn = (iFiUU_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX); }
+void iFiUp(x64emu_t *emu, uintptr_t fcn) { iFiUp_t fn = (iFiUp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint64_t)R_RSI, (void*)R_RDX); }
+void iFidd(x64emu_t *emu, uintptr_t fcn) { iFidd_t fn = (iFidd_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0]); }
 void iFill(x64emu_t *emu, uintptr_t fcn) { iFill_t fn = (iFill_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX); }
 void iFilp(x64emu_t *emu, uintptr_t fcn) { iFilp_t fn = (iFilp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (void*)R_RDX); }
 void iFiLi(x64emu_t *emu, uintptr_t fcn) { iFiLi_t fn = (iFiLi_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX); }
@@ -4189,6 +4217,7 @@ void iFppL(x64emu_t *emu, uintptr_t fcn) { iFppL_t fn = (iFppL_t)fcn; R_RAX=(uin
 void iFppp(x64emu_t *emu, uintptr_t fcn) { iFppp_t fn = (iFppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void iFpOi(x64emu_t *emu, uintptr_t fcn) { iFpOi_t fn = (iFpOi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, of_convert((int32_t)R_RSI), (int32_t)R_RDX); }
 void iFpOu(x64emu_t *emu, uintptr_t fcn) { iFpOu_t fn = (iFpOu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, of_convert((int32_t)R_RSI), (uint32_t)R_RDX); }
+void iFpSi(x64emu_t *emu, uintptr_t fcn) { iFpSi_t fn = (iFpSi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, io_convert((void*)R_RSI), (int32_t)R_RDX); }
 void iFpSu(x64emu_t *emu, uintptr_t fcn) { iFpSu_t fn = (iFpSu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, io_convert((void*)R_RSI), (uint32_t)R_RDX); }
 void iFpSp(x64emu_t *emu, uintptr_t fcn) { iFpSp_t fn = (iFpSp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, io_convert((void*)R_RSI), (void*)R_RDX); }
 void iFpHH(x64emu_t *emu, uintptr_t fcn) { iFpHH_t fn = (iFpHH_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (unsigned __int128)R_RSI + ((unsigned __int128)R_RDX << 64), (unsigned __int128)R_RCX + ((unsigned __int128)R_R8 << 64)); }
@@ -4344,6 +4373,7 @@ void pFiii(x64emu_t *emu, uintptr_t fcn) { pFiii_t fn = (pFiii_t)fcn; R_RAX=(uin
 void pFiiu(x64emu_t *emu, uintptr_t fcn) { pFiiu_t fn = (pFiiu_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX); }
 void pFiid(x64emu_t *emu, uintptr_t fcn) { pFiid_t fn = (pFiid_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, emu->xmm[0].d[0]); }
 void pFiip(x64emu_t *emu, uintptr_t fcn) { pFiip_t fn = (pFiip_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX); }
+void pFiuu(x64emu_t *emu, uintptr_t fcn) { pFiuu_t fn = (pFiuu_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); }
 void pFiup(x64emu_t *emu, uintptr_t fcn) { pFiup_t fn = (pFiup_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
 void pFiLL(x64emu_t *emu, uintptr_t fcn) { pFiLL_t fn = (pFiLL_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX); }
 void pFipi(x64emu_t *emu, uintptr_t fcn) { pFipi_t fn = (pFipi_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
@@ -4649,7 +4679,10 @@ void iFiIIi(x64emu_t *emu, uintptr_t fcn) { iFiIIi_t fn = (iFiIIi_t)fcn; R_RAX=(
 void iFiIIu(x64emu_t *emu, uintptr_t fcn) { iFiIIu_t fn = (iFiIIu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint32_t)R_RCX); }
 void iFiWii(x64emu_t *emu, uintptr_t fcn) { iFiWii_t fn = (iFiWii_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint16_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void iFiuwp(x64emu_t *emu, uintptr_t fcn) { iFiuwp_t fn = (iFiuwp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (int16_t)R_RDX, (void*)R_RCX); }
+void iFiuii(x64emu_t *emu, uintptr_t fcn) { iFiuii_t fn = (iFiuii_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
+void iFiuuU(x64emu_t *emu, uintptr_t fcn) { iFiuuU_t fn = (iFiuuU_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint64_t)R_RCX); }
 void iFiuup(x64emu_t *emu, uintptr_t fcn) { iFiuup_t fn = (iFiuup_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
+void iFiupu(x64emu_t *emu, uintptr_t fcn) { iFiupu_t fn = (iFiupu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); }
 void iFiupp(x64emu_t *emu, uintptr_t fcn) { iFiupp_t fn = (iFiupp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFilli(x64emu_t *emu, uintptr_t fcn) { iFilli_t fn = (iFilli_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (int32_t)R_RCX); }
 void iFiLpL(x64emu_t *emu, uintptr_t fcn) { iFiLpL_t fn = (iFiLpL_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
@@ -4658,6 +4691,7 @@ void iFipip(x64emu_t *emu, uintptr_t fcn) { iFipip_t fn = (iFipip_t)fcn; R_RAX=(
 void iFipWp(x64emu_t *emu, uintptr_t fcn) { iFipWp_t fn = (iFipWp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint16_t)R_RDX, (void*)R_RCX); }
 void iFipui(x64emu_t *emu, uintptr_t fcn) { iFipui_t fn = (iFipui_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX); }
 void iFipuU(x64emu_t *emu, uintptr_t fcn) { iFipuU_t fn = (iFipuU_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint64_t)R_RCX); }
+void iFipup(x64emu_t *emu, uintptr_t fcn) { iFipup_t fn = (iFipup_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
 void iFipLi(x64emu_t *emu, uintptr_t fcn) { iFipLi_t fn = (iFipLi_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX); }
 void iFipLu(x64emu_t *emu, uintptr_t fcn) { iFipLu_t fn = (iFipLu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uint32_t)R_RCX); }
 void iFipLp(x64emu_t *emu, uintptr_t fcn) { iFipLp_t fn = (iFipLp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); }
@@ -4721,6 +4755,7 @@ void iFpuip(x64emu_t *emu, uintptr_t fcn) { iFpuip_t fn = (iFpuip_t)fcn; R_RAX=(
 void iFpuWp(x64emu_t *emu, uintptr_t fcn) { iFpuWp_t fn = (iFpuWp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint16_t)R_RDX, (void*)R_RCX); }
 void iFpuui(x64emu_t *emu, uintptr_t fcn) { iFpuui_t fn = (iFpuui_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX); }
 void iFpuuu(x64emu_t *emu, uintptr_t fcn) { iFpuuu_t fn = (iFpuuu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
+void iFpuuU(x64emu_t *emu, uintptr_t fcn) { iFpuuU_t fn = (iFpuuU_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint64_t)R_RCX); }
 void iFpuul(x64emu_t *emu, uintptr_t fcn) { iFpuul_t fn = (iFpuul_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (intptr_t)R_RCX); }
 void iFpuuL(x64emu_t *emu, uintptr_t fcn) { iFpuuL_t fn = (iFpuuL_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uintptr_t)R_RCX); }
 void iFpuup(x64emu_t *emu, uintptr_t fcn) { iFpuup_t fn = (iFpuup_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
@@ -5277,15 +5312,19 @@ void iFEpppp(x64emu_t *emu, uintptr_t fcn) { iFEpppp_t fn = (iFEpppp_t)fcn; R_RA
 void iFEpppV(x64emu_t *emu, uintptr_t fcn) { iFEpppV_t fn = (iFEpppV_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
 void iFEpppA(x64emu_t *emu, uintptr_t fcn) { iFEpppA_t fn = (iFEpppA_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiip_t fn = (iFiiiip_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
+void iFiiiui(x64emu_t *emu, uintptr_t fcn) { iFiiiui_t fn = (iFiiiui_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8); }
 void iFiiipu(x64emu_t *emu, uintptr_t fcn) { iFiiipu_t fn = (iFiiipu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8); }
 void iFiiipp(x64emu_t *emu, uintptr_t fcn) { iFiiipp_t fn = (iFiiipp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFiiupp(x64emu_t *emu, uintptr_t fcn) { iFiiupp_t fn = (iFiiupp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFiippp(x64emu_t *emu, uintptr_t fcn) { iFiippp_t fn = (iFiippp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFiuuuu(x64emu_t *emu, uintptr_t fcn) { iFiuuuu_t fn = (iFiuuuu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
+void iFiuuuU(x64emu_t *emu, uintptr_t fcn) { iFiuuuU_t fn = (iFiuuuU_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint64_t)R_R8); }
 void iFiuuup(x64emu_t *emu, uintptr_t fcn) { iFiuuup_t fn = (iFiuuup_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); }
 void iFiuUip(x64emu_t *emu, uintptr_t fcn) { iFiuUip_t fn = (iFiuUip_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint64_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void iFillLL(x64emu_t *emu, uintptr_t fcn) { iFillLL_t fn = (iFillLL_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8); }
+void iFiLLpp(x64emu_t *emu, uintptr_t fcn) { iFiLLpp_t fn = (iFiLLpp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFipiii(x64emu_t *emu, uintptr_t fcn) { iFipiii_t fn = (iFipiii_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
+void iFipiip(x64emu_t *emu, uintptr_t fcn) { iFipiip_t fn = (iFipiip_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void iFipipi(x64emu_t *emu, uintptr_t fcn) { iFipipi_t fn = (iFipipi_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void iFipipu(x64emu_t *emu, uintptr_t fcn) { iFipipu_t fn = (iFipipu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8); }
 void iFipuip(x64emu_t *emu, uintptr_t fcn) { iFipuip_t fn = (iFipuip_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
@@ -5805,6 +5844,8 @@ void iFiiiuwp(x64emu_t *emu, uintptr_t fcn) { iFiiiuwp_t fn = (iFiiiuwp_t)fcn; R
 void iFiippiu(x64emu_t *emu, uintptr_t fcn) { iFiippiu_t fn = (iFiippiu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uint32_t)R_R9); }
 void iFiWiipi(x64emu_t *emu, uintptr_t fcn) { iFiWiipi_t fn = (iFiWiipi_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint16_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void iFiuuuup(x64emu_t *emu, uintptr_t fcn) { iFiuuuup_t fn = (iFiuuuup_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); }
+void iFiuuupu(x64emu_t *emu, uintptr_t fcn) { iFiuuupu_t fn = (iFiuuupu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9); }
+void iFiuuUpU(x64emu_t *emu, uintptr_t fcn) { iFiuuUpU_t fn = (iFiuuUpU_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint64_t)R_RCX, (void*)R_R8, (uint64_t)R_R9); }
 void iFiuuppp(x64emu_t *emu, uintptr_t fcn) { iFiuuppp_t fn = (iFiuuppp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFiuUuUu(x64emu_t *emu, uintptr_t fcn) { iFiuUuUu_t fn = (iFiuUuUu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint64_t)R_RDX, (uint32_t)R_RCX, (uint64_t)R_R8, (uint32_t)R_R9); }
 void iFilpppp(x64emu_t *emu, uintptr_t fcn) { iFilpppp_t fn = (iFilpppp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
@@ -6242,6 +6283,8 @@ void iFEppLpIu(x64emu_t *emu, uintptr_t fcn) { iFEppLpIu_t fn = (iFEppLpIu_t)fcn
 void iFEpppLpp(x64emu_t *emu, uintptr_t fcn) { iFEpppLpp_t fn = (iFEpppLpp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFEpppppL(x64emu_t *emu, uintptr_t fcn) { iFEpppppL_t fn = (iFEpppppL_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9); }
 void iFEpppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
+void iFiippppp(x64emu_t *emu, uintptr_t fcn) { iFiippppp_t fn = (iFiippppp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void iFiuuuuii(x64emu_t *emu, uintptr_t fcn) { iFiuuuuii_t fn = (iFiuuuuii_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFiupuuup(x64emu_t *emu, uintptr_t fcn) { iFiupuuup_t fn = (iFiupuuup_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8)); }
 void iFiupuppp(x64emu_t *emu, uintptr_t fcn) { iFiupuppp_t fn = (iFiupuppp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void iFipupupi(x64emu_t *emu, uintptr_t fcn) { iFipupupi_t fn = (iFipupupi_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
@@ -6525,6 +6568,7 @@ void iFEppppLpp(x64emu_t *emu, uintptr_t fcn) { iFEppppLpp_t fn = (iFEppppLpp_t)
 void iFEpppppuu(x64emu_t *emu, uintptr_t fcn) { iFEpppppuu_t fn = (iFEpppppuu_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
 void iFEppppppp(x64emu_t *emu, uintptr_t fcn) { iFEppppppp_t fn = (iFEppppppp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void iFiiupiupi(x64emu_t *emu, uintptr_t fcn) { iFiiupiupi_t fn = (iFiiupiupi_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); }
+void iFiipppppp(x64emu_t *emu, uintptr_t fcn) { iFiipppppp_t fn = (iFiipppppp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFiuuCCuup(x64emu_t *emu, uintptr_t fcn) { iFiuuCCuup_t fn = (iFiuuCCuup_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFiuuuupip(x64emu_t *emu, uintptr_t fcn) { iFiuuuupip_t fn = (iFiuuuupip_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFipippppp(x64emu_t *emu, uintptr_t fcn) { iFipippppp_t fn = (iFipippppp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
@@ -6718,6 +6762,7 @@ void iFEppplPPPP(x64emu_t *emu, uintptr_t fcn) { iFEppplPPPP_t fn = (iFEppplPPPP
 void iFEpppppupp(x64emu_t *emu, uintptr_t fcn) { iFEpppppupp_t fn = (iFEpppppupp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFEppppppuu(x64emu_t *emu, uintptr_t fcn) { iFEppppppuu_t fn = (iFEppppppuu_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
 void iFEppPPPPPP(x64emu_t *emu, uintptr_t fcn) { iFEppPPPPPP_t fn = (iFEppPPPPPP_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48)); }
+void iFiuuuppppu(x64emu_t *emu, uintptr_t fcn) { iFiuuuppppu_t fn = (iFiuuuppppu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); }
 void iFipiipippi(x64emu_t *emu, uintptr_t fcn) { iFipiipippi_t fn = (iFipiipippi_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
 void iFuiiuuiiip(x64emu_t *emu, uintptr_t fcn) { iFuiiuuiiip_t fn = (iFuiiuuiiip_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFuiiupiiup(x64emu_t *emu, uintptr_t fcn) { iFuiiupiiup_t fn = (iFuiiupiiup_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
@@ -6835,6 +6880,7 @@ void iFEpiiiiippp(x64emu_t *emu, uintptr_t fcn) { iFEpiiiiippp_t fn = (iFEpiiiii
 void iFEpupppLppL(x64emu_t *emu, uintptr_t fcn) { iFEpupppLppL_t fn = (iFEpupppLppL_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); }
 void iFEppppppipp(x64emu_t *emu, uintptr_t fcn) { iFEppppppipp_t fn = (iFEppppppipp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFEpppppppip(x64emu_t *emu, uintptr_t fcn) { iFEpppppppip_t fn = (iFEpppppppip_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
+void iFiuuupppppu(x64emu_t *emu, uintptr_t fcn) { iFiuuupppppu_t fn = (iFiuuupppppu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(uint32_t*)(R_RSP + 32)); }
 void iFuiiiuuiiip(x64emu_t *emu, uintptr_t fcn) { iFuiiiuuiiip_t fn = (iFuiiiuuiiip_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); }
 void iFpiiLiiipip(x64emu_t *emu, uintptr_t fcn) { iFpiiLiiipip_t fn = (iFpiiLiiipip_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uintptr_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); }
 void iFpiLLiiipip(x64emu_t *emu, uintptr_t fcn) { iFpiLLiiipip_t fn = (iFpiLLiiipip_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); }
@@ -6988,6 +7034,7 @@ void vFppiiiiiiuiuii(x64emu_t *emu, uintptr_t fcn) { vFppiiiiiiuiuii_t fn = (vFp
 void vFppuuppiiiiuii(x64emu_t *emu, uintptr_t fcn) { vFppuuppiiiiuii_t fn = (vFppuuppiiiiuii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48), *(int32_t*)(R_RSP + 56)); }
 void vFppuupppuiiiii(x64emu_t *emu, uintptr_t fcn) { vFppuupppuiiiii_t fn = (vFppuupppuiiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48), *(int32_t*)(R_RSP + 56)); }
 void vFppppppppppppp(x64emu_t *emu, uintptr_t fcn) { vFppppppppppppp_t fn = (vFppppppppppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); }
+void iFiuuuuiiuuuuuu(x64emu_t *emu, uintptr_t fcn) { iFiuuuuiiuuuuuu_t fn = (iFiuuuuiiuuuuuu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(uint32_t*)(R_RSP + 48), *(uint32_t*)(R_RSP + 56)); }
 void iFddddpppddpppp(x64emu_t *emu, uintptr_t fcn) { iFddddpppddpppp_t fn = (iFddddpppddpppp_t)fcn; R_RAX=(uint32_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, emu->xmm[4].d[0], emu->xmm[5].d[0], (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void iFpippuuuiipppp(x64emu_t *emu, uintptr_t fcn) { iFpippuuuiipppp_t fn = (iFpippuuuiipppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); }
 void iFpLLlliiLppppp(x64emu_t *emu, uintptr_t fcn) { iFpLLlliiLppppp_t fn = (iFpLLlliiLppppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); }
@@ -7129,7 +7176,6 @@ void vFppippDpDc(x64emu_t *emu, uintptr_t fcn) { vFppippDpDc_t fn = (vFppippDpDc
 #endif
 
 #if defined(NOALIGN)
-void iFipiip(x64emu_t *emu, uintptr_t fcn) { iFipiip_t fn = (iFipiip_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void iFipipp(x64emu_t *emu, uintptr_t fcn) { iFipipp_t fn = (iFipipp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 #endif
 
@@ -7321,6 +7367,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiu) return 1;
 	if (fun == &iFiU) return 1;
 	if (fun == &iFil) return 1;
+	if (fun == &iFiL) return 1;
 	if (fun == &iFip) return 1;
 	if (fun == &iFWW) return 1;
 	if (fun == &iFui) return 1;
@@ -7570,7 +7617,11 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiCC) return 1;
 	if (fun == &iFiui) return 1;
 	if (fun == &iFiuu) return 1;
+	if (fun == &iFiuL) return 1;
 	if (fun == &iFiup) return 1;
+	if (fun == &iFiUU) return 1;
+	if (fun == &iFiUp) return 1;
+	if (fun == &iFidd) return 3;
 	if (fun == &iFill) return 1;
 	if (fun == &iFilp) return 1;
 	if (fun == &iFiLi) return 1;
@@ -7756,6 +7807,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFiiu) return 1;
 	if (fun == &pFiid) return 2;
 	if (fun == &pFiip) return 1;
+	if (fun == &pFiuu) return 1;
 	if (fun == &pFiup) return 1;
 	if (fun == &pFiLL) return 1;
 	if (fun == &pFipi) return 1;
@@ -7988,7 +8040,10 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiIIu) return 1;
 	if (fun == &iFiWii) return 1;
 	if (fun == &iFiuwp) return 1;
+	if (fun == &iFiuii) return 1;
+	if (fun == &iFiuuU) return 1;
 	if (fun == &iFiuup) return 1;
+	if (fun == &iFiupu) return 1;
 	if (fun == &iFiupp) return 1;
 	if (fun == &iFilli) return 1;
 	if (fun == &iFiLpL) return 1;
@@ -7997,6 +8052,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFipWp) return 1;
 	if (fun == &iFipui) return 1;
 	if (fun == &iFipuU) return 1;
+	if (fun == &iFipup) return 1;
 	if (fun == &iFipLi) return 1;
 	if (fun == &iFipLu) return 1;
 	if (fun == &iFipLp) return 1;
@@ -8058,6 +8114,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpuWp) return 1;
 	if (fun == &iFpuui) return 1;
 	if (fun == &iFpuuu) return 1;
+	if (fun == &iFpuuU) return 1;
 	if (fun == &iFpuul) return 1;
 	if (fun == &iFpuuL) return 1;
 	if (fun == &iFpuup) return 1;
@@ -8493,15 +8550,19 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &vFppppL) return 1;
 	if (fun == &vFppppp) return 1;
 	if (fun == &iFiiiip) return 1;
+	if (fun == &iFiiiui) return 1;
 	if (fun == &iFiiipu) return 1;
 	if (fun == &iFiiipp) return 1;
 	if (fun == &iFiiupp) return 1;
 	if (fun == &iFiippp) return 1;
 	if (fun == &iFiuuuu) return 1;
+	if (fun == &iFiuuuU) return 1;
 	if (fun == &iFiuuup) return 1;
 	if (fun == &iFiuUip) return 1;
 	if (fun == &iFillLL) return 1;
+	if (fun == &iFiLLpp) return 1;
 	if (fun == &iFipiii) return 1;
+	if (fun == &iFipiip) return 1;
 	if (fun == &iFipipi) return 1;
 	if (fun == &iFipipu) return 1;
 	if (fun == &iFipuip) return 1;
@@ -8927,6 +8988,8 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiippiu) return 1;
 	if (fun == &iFiWiipi) return 1;
 	if (fun == &iFiuuuup) return 1;
+	if (fun == &iFiuuupu) return 1;
+	if (fun == &iFiuuUpU) return 1;
 	if (fun == &iFiuuppp) return 1;
 	if (fun == &iFiuUuUu) return 1;
 	if (fun == &iFilpppp) return 1;
@@ -9217,7 +9280,6 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpiLLdduudd) return 5;
 	if (fun == &lFpLppdddddd) return 7;
 #if defined(NOALIGN)
-	if (fun == &iFipiip) return 1;
 	if (fun == &iFipipp) return 1;
 #endif
 #if !defined(STATICBUILD)
@@ -9385,6 +9447,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiu) return 49;
 	if (fun == &iFiU) return 17;
 	if (fun == &iFil) return 17;
+	if (fun == &iFiL) return 17;
 	if (fun == &iFip) return 17;
 	if (fun == &iFWW) return 1;
 	if (fun == &iFui) return 49;
@@ -9634,7 +9697,11 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiCC) return 17;
 	if (fun == &iFiui) return 113;
 	if (fun == &iFiuu) return 113;
+	if (fun == &iFiuL) return 49;
 	if (fun == &iFiup) return 49;
+	if (fun == &iFiUU) return 17;
+	if (fun == &iFiUp) return 17;
+	if (fun == &iFidd) return 19;
 	if (fun == &iFill) return 17;
 	if (fun == &iFilp) return 17;
 	if (fun == &iFiLi) return 81;
@@ -9820,6 +9887,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFiiu) return 113;
 	if (fun == &pFiid) return 50;
 	if (fun == &pFiip) return 49;
+	if (fun == &pFiuu) return 113;
 	if (fun == &pFiup) return 49;
 	if (fun == &pFiLL) return 17;
 	if (fun == &pFipi) return 81;
@@ -10052,7 +10120,10 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiIIu) return 145;
 	if (fun == &iFiWii) return 209;
 	if (fun == &iFiuwp) return 113;
+	if (fun == &iFiuii) return 241;
+	if (fun == &iFiuuU) return 113;
 	if (fun == &iFiuup) return 113;
+	if (fun == &iFiupu) return 177;
 	if (fun == &iFiupp) return 49;
 	if (fun == &iFilli) return 145;
 	if (fun == &iFiLpL) return 17;
@@ -10061,6 +10132,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFipWp) return 17;
 	if (fun == &iFipui) return 209;
 	if (fun == &iFipuU) return 81;
+	if (fun == &iFipup) return 81;
 	if (fun == &iFipLi) return 145;
 	if (fun == &iFipLu) return 145;
 	if (fun == &iFipLp) return 17;
@@ -10122,6 +10194,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpuWp) return 33;
 	if (fun == &iFpuui) return 225;
 	if (fun == &iFpuuu) return 225;
+	if (fun == &iFpuuU) return 97;
 	if (fun == &iFpuul) return 97;
 	if (fun == &iFpuuL) return 97;
 	if (fun == &iFpuup) return 97;
@@ -10557,15 +10630,19 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &vFppppL) return 1;
 	if (fun == &vFppppp) return 1;
 	if (fun == &iFiiiip) return 241;
+	if (fun == &iFiiiui) return 497;
 	if (fun == &iFiiipu) return 369;
 	if (fun == &iFiiipp) return 113;
 	if (fun == &iFiiupp) return 113;
 	if (fun == &iFiippp) return 49;
 	if (fun == &iFiuuuu) return 497;
+	if (fun == &iFiuuuU) return 241;
 	if (fun == &iFiuuup) return 241;
 	if (fun == &iFiuUip) return 177;
 	if (fun == &iFillLL) return 17;
+	if (fun == &iFiLLpp) return 17;
 	if (fun == &iFipiii) return 465;
+	if (fun == &iFipiip) return 209;
 	if (fun == &iFipipi) return 337;
 	if (fun == &iFipipu) return 337;
 	if (fun == &iFipuip) return 209;
@@ -10991,6 +11068,8 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFiippiu) return 817;
 	if (fun == &iFiWiipi) return 721;
 	if (fun == &iFiuuuup) return 497;
+	if (fun == &iFiuuupu) return 753;
+	if (fun == &iFiuuUpU) return 113;
 	if (fun == &iFiuuppp) return 113;
 	if (fun == &iFiuUuUu) return 689;
 	if (fun == &iFilpppp) return 17;
@@ -11281,7 +11360,6 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpiLLdduudd) return 805;
 	if (fun == &lFpLppdddddd) return 7;
 #if defined(NOALIGN)
-	if (fun == &iFipiip) return 209;
 	if (fun == &iFipipp) return 81;
 #endif
 #if !defined(STATICBUILD)
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index aa372381..cda7f2f5 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -239,6 +239,7 @@ void iFiC(x64emu_t *emu, uintptr_t fnc);
 void iFiu(x64emu_t *emu, uintptr_t fnc);
 void iFiU(x64emu_t *emu, uintptr_t fnc);
 void iFil(x64emu_t *emu, uintptr_t fnc);
+void iFiL(x64emu_t *emu, uintptr_t fnc);
 void iFip(x64emu_t *emu, uintptr_t fnc);
 void iFiS(x64emu_t *emu, uintptr_t fnc);
 void iFWW(x64emu_t *emu, uintptr_t fnc);
@@ -571,7 +572,11 @@ void iFiII(x64emu_t *emu, uintptr_t fnc);
 void iFiCC(x64emu_t *emu, uintptr_t fnc);
 void iFiui(x64emu_t *emu, uintptr_t fnc);
 void iFiuu(x64emu_t *emu, uintptr_t fnc);
+void iFiuL(x64emu_t *emu, uintptr_t fnc);
 void iFiup(x64emu_t *emu, uintptr_t fnc);
+void iFiUU(x64emu_t *emu, uintptr_t fnc);
+void iFiUp(x64emu_t *emu, uintptr_t fnc);
+void iFidd(x64emu_t *emu, uintptr_t fnc);
 void iFill(x64emu_t *emu, uintptr_t fnc);
 void iFilp(x64emu_t *emu, uintptr_t fnc);
 void iFiLi(x64emu_t *emu, uintptr_t fnc);
@@ -652,6 +657,7 @@ void iFppL(x64emu_t *emu, uintptr_t fnc);
 void iFppp(x64emu_t *emu, uintptr_t fnc);
 void iFpOi(x64emu_t *emu, uintptr_t fnc);
 void iFpOu(x64emu_t *emu, uintptr_t fnc);
+void iFpSi(x64emu_t *emu, uintptr_t fnc);
 void iFpSu(x64emu_t *emu, uintptr_t fnc);
 void iFpSp(x64emu_t *emu, uintptr_t fnc);
 void iFpHH(x64emu_t *emu, uintptr_t fnc);
@@ -810,6 +816,7 @@ void pFiii(x64emu_t *emu, uintptr_t fnc);
 void pFiiu(x64emu_t *emu, uintptr_t fnc);
 void pFiid(x64emu_t *emu, uintptr_t fnc);
 void pFiip(x64emu_t *emu, uintptr_t fnc);
+void pFiuu(x64emu_t *emu, uintptr_t fnc);
 void pFiup(x64emu_t *emu, uintptr_t fnc);
 void pFiLL(x64emu_t *emu, uintptr_t fnc);
 void pFipi(x64emu_t *emu, uintptr_t fnc);
@@ -1116,7 +1123,10 @@ void iFiIIi(x64emu_t *emu, uintptr_t fnc);
 void iFiIIu(x64emu_t *emu, uintptr_t fnc);
 void iFiWii(x64emu_t *emu, uintptr_t fnc);
 void iFiuwp(x64emu_t *emu, uintptr_t fnc);
+void iFiuii(x64emu_t *emu, uintptr_t fnc);
+void iFiuuU(x64emu_t *emu, uintptr_t fnc);
 void iFiuup(x64emu_t *emu, uintptr_t fnc);
+void iFiupu(x64emu_t *emu, uintptr_t fnc);
 void iFiupp(x64emu_t *emu, uintptr_t fnc);
 void iFilli(x64emu_t *emu, uintptr_t fnc);
 void iFiLpL(x64emu_t *emu, uintptr_t fnc);
@@ -1125,6 +1135,7 @@ void iFipip(x64emu_t *emu, uintptr_t fnc);
 void iFipWp(x64emu_t *emu, uintptr_t fnc);
 void iFipui(x64emu_t *emu, uintptr_t fnc);
 void iFipuU(x64emu_t *emu, uintptr_t fnc);
+void iFipup(x64emu_t *emu, uintptr_t fnc);
 void iFipLi(x64emu_t *emu, uintptr_t fnc);
 void iFipLu(x64emu_t *emu, uintptr_t fnc);
 void iFipLp(x64emu_t *emu, uintptr_t fnc);
@@ -1188,6 +1199,7 @@ void iFpuip(x64emu_t *emu, uintptr_t fnc);
 void iFpuWp(x64emu_t *emu, uintptr_t fnc);
 void iFpuui(x64emu_t *emu, uintptr_t fnc);
 void iFpuuu(x64emu_t *emu, uintptr_t fnc);
+void iFpuuU(x64emu_t *emu, uintptr_t fnc);
 void iFpuul(x64emu_t *emu, uintptr_t fnc);
 void iFpuuL(x64emu_t *emu, uintptr_t fnc);
 void iFpuup(x64emu_t *emu, uintptr_t fnc);
@@ -1746,15 +1758,19 @@ void iFEpppp(x64emu_t *emu, uintptr_t fnc);
 void iFEpppV(x64emu_t *emu, uintptr_t fnc);
 void iFEpppA(x64emu_t *emu, uintptr_t fnc);
 void iFiiiip(x64emu_t *emu, uintptr_t fnc);
+void iFiiiui(x64emu_t *emu, uintptr_t fnc);
 void iFiiipu(x64emu_t *emu, uintptr_t fnc);
 void iFiiipp(x64emu_t *emu, uintptr_t fnc);
 void iFiiupp(x64emu_t *emu, uintptr_t fnc);
 void iFiippp(x64emu_t *emu, uintptr_t fnc);
 void iFiuuuu(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuU(x64emu_t *emu, uintptr_t fnc);
 void iFiuuup(x64emu_t *emu, uintptr_t fnc);
 void iFiuUip(x64emu_t *emu, uintptr_t fnc);
 void iFillLL(x64emu_t *emu, uintptr_t fnc);
+void iFiLLpp(x64emu_t *emu, uintptr_t fnc);
 void iFipiii(x64emu_t *emu, uintptr_t fnc);
+void iFipiip(x64emu_t *emu, uintptr_t fnc);
 void iFipipi(x64emu_t *emu, uintptr_t fnc);
 void iFipipu(x64emu_t *emu, uintptr_t fnc);
 void iFipuip(x64emu_t *emu, uintptr_t fnc);
@@ -2274,6 +2290,8 @@ void iFiiiuwp(x64emu_t *emu, uintptr_t fnc);
 void iFiippiu(x64emu_t *emu, uintptr_t fnc);
 void iFiWiipi(x64emu_t *emu, uintptr_t fnc);
 void iFiuuuup(x64emu_t *emu, uintptr_t fnc);
+void iFiuuupu(x64emu_t *emu, uintptr_t fnc);
+void iFiuuUpU(x64emu_t *emu, uintptr_t fnc);
 void iFiuuppp(x64emu_t *emu, uintptr_t fnc);
 void iFiuUuUu(x64emu_t *emu, uintptr_t fnc);
 void iFilpppp(x64emu_t *emu, uintptr_t fnc);
@@ -2712,6 +2730,8 @@ void iFEppLpIu(x64emu_t *emu, uintptr_t fnc);
 void iFEpppLpp(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppL(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppp(x64emu_t *emu, uintptr_t fnc);
+void iFiippppp(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuuii(x64emu_t *emu, uintptr_t fnc);
 void iFiupuuup(x64emu_t *emu, uintptr_t fnc);
 void iFiupuppp(x64emu_t *emu, uintptr_t fnc);
 void iFipupupi(x64emu_t *emu, uintptr_t fnc);
@@ -2995,6 +3015,7 @@ void iFEppppLpp(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppuu(x64emu_t *emu, uintptr_t fnc);
 void iFEppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFiiupiupi(x64emu_t *emu, uintptr_t fnc);
+void iFiipppppp(x64emu_t *emu, uintptr_t fnc);
 void iFiuuCCuup(x64emu_t *emu, uintptr_t fnc);
 void iFiuuuupip(x64emu_t *emu, uintptr_t fnc);
 void iFipippppp(x64emu_t *emu, uintptr_t fnc);
@@ -3189,6 +3210,7 @@ void iFEppplPPPP(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppupp(x64emu_t *emu, uintptr_t fnc);
 void iFEppppppuu(x64emu_t *emu, uintptr_t fnc);
 void iFEppPPPPPP(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuppppu(x64emu_t *emu, uintptr_t fnc);
 void iFipiipippi(x64emu_t *emu, uintptr_t fnc);
 void iFuiiuuiiip(x64emu_t *emu, uintptr_t fnc);
 void iFuiiupiiup(x64emu_t *emu, uintptr_t fnc);
@@ -3306,6 +3328,7 @@ void iFEpiiiiippp(x64emu_t *emu, uintptr_t fnc);
 void iFEpupppLppL(x64emu_t *emu, uintptr_t fnc);
 void iFEppppppipp(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppppip(x64emu_t *emu, uintptr_t fnc);
+void iFiuuupppppu(x64emu_t *emu, uintptr_t fnc);
 void iFuiiiuuiiip(x64emu_t *emu, uintptr_t fnc);
 void iFpiiLiiipip(x64emu_t *emu, uintptr_t fnc);
 void iFpiLLiiipip(x64emu_t *emu, uintptr_t fnc);
@@ -3459,6 +3482,7 @@ void vFppiiiiiiuiuii(x64emu_t *emu, uintptr_t fnc);
 void vFppuuppiiiiuii(x64emu_t *emu, uintptr_t fnc);
 void vFppuupppuiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFppppppppppppp(x64emu_t *emu, uintptr_t fnc);
+void iFiuuuuiiuuuuuu(x64emu_t *emu, uintptr_t fnc);
 void iFddddpppddpppp(x64emu_t *emu, uintptr_t fnc);
 void iFpippuuuiipppp(x64emu_t *emu, uintptr_t fnc);
 void iFpLLlliiLppppp(x64emu_t *emu, uintptr_t fnc);
@@ -3520,7 +3544,6 @@ void pFpupuupppppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFpppppppppppppppppppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 
 #if defined(NOALIGN)
-void iFipiip(x64emu_t *emu, uintptr_t fnc);
 void iFipipp(x64emu_t *emu, uintptr_t fnc);
 #endif
 
diff --git a/src/wrapped/wrappeddecor0_private.h b/src/wrapped/wrappeddecor0_private.h
index 517d1f47..84ae70b5 100644
--- a/src/wrapped/wrappeddecor0_private.h
+++ b/src/wrapped/wrappeddecor0_private.h
@@ -1,60 +1,60 @@
 #if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
-#error Meh....
+#error Meh...
 #endif
 
-//GO(libdecor_configuration_get_content_size, 
-//GO(libdecor_configuration_get_window_state, 
-//GO(libdecor_decorate, 
-//GO(libdecor_dispatch, 
-//GO(libdecor_frame_close, 
-//GO(libdecor_frame_commit, 
-//GO(libdecor_frame_dismiss_popup, 
-//GO(libdecor_frame_get_capabilities, 
-//GO(libdecor_frame_get_content_height, 
-//GO(libdecor_frame_get_content_width, 
-//GO(libdecor_frame_get_max_content_size, 
-//GO(libdecor_frame_get_min_content_size, 
-//GO(libdecor_frame_get_title, 
-//GO(libdecor_frame_get_window_state, 
-//GO(libdecor_frame_get_wl_surface, 
-//GO(libdecor_frame_get_xdg_surface, 
-//GO(libdecor_frame_get_xdg_toplevel, 
-//GO(libdecor_frame_has_capability, 
-//GO(libdecor_frame_is_floating, 
-//GO(libdecor_frame_is_visible, 
-//GO(libdecor_frame_map, 
-//GO(libdecor_frame_move, 
-//GO(libdecor_frame_popup_grab, 
-//GO(libdecor_frame_popup_ungrab, 
-//GO(libdecor_frame_ref, 
-//GO(libdecor_frame_resize, 
-//GO(libdecor_frame_set_app_id, 
-//GO(libdecor_frame_set_capabilities, 
-//GO(libdecor_frame_set_fullscreen, 
-//GO(libdecor_frame_set_max_content_size, 
-//GO(libdecor_frame_set_maximized, 
-//GO(libdecor_frame_set_min_content_size, 
-//GO(libdecor_frame_set_minimized, 
-//GO(libdecor_frame_set_parent, 
-//GO(libdecor_frame_set_title, 
-//GO(libdecor_frame_set_visibility, 
-//GO(libdecor_frame_show_window_menu, 
-//GO(libdecor_frame_toplevel_commit, 
-//GO(libdecor_frame_translate_coordinate, 
-//GO(libdecor_frame_unref, 
-//GO(libdecor_frame_unset_capabilities, 
-//GO(libdecor_frame_unset_fullscreen, 
-//GO(libdecor_frame_unset_maximized, 
-//GO(libdecor_get_fd, 
-//GO(libdecor_get_wl_display, 
-//GO(libdecor_new, 
-//GO(libdecor_notify_plugin_error, 
-//GO(libdecor_notify_plugin_ready, 
-//GO(libdecor_plugin_init, 
-//GO(libdecor_plugin_release, 
-//GO(libdecor_state_free, 
-//GO(libdecor_state_get_content_height, 
-//GO(libdecor_state_get_content_width, 
-//GO(libdecor_state_get_window_state, 
-//GO(libdecor_state_new, 
-//GO(libdecor_unref, 
+GO(libdecor_configuration_get_content_size, iFpppp)
+GO(libdecor_configuration_get_window_state, iFpp)
+GO(libdecor_decorate, pFpppp)
+GO(libdecor_dispatch, iFpi)
+GO(libdecor_frame_close, vFp)
+GO(libdecor_frame_commit, vFppp)
+//GO(libdecor_frame_dismiss_popup,
+//GO(libdecor_frame_get_capabilities,
+//GO(libdecor_frame_get_content_height,
+//GO(libdecor_frame_get_content_width,
+GO(libdecor_frame_get_max_content_size, vFppp)
+GO(libdecor_frame_get_min_content_size, vFppp)
+GO(libdecor_frame_get_title, pFp)
+//GO(libdecor_frame_get_window_state,
+//GO(libdecor_frame_get_wl_surface,
+GO(libdecor_frame_get_xdg_surface, pFp)
+GO(libdecor_frame_get_xdg_toplevel, pFp)
+GO(libdecor_frame_has_capability, iFpu)
+GO(libdecor_frame_is_floating, iFp)
+GO(libdecor_frame_is_visible, iFp)
+GO(libdecor_frame_map, vFp)
+GO(libdecor_frame_move, vFppu)
+GO(libdecor_frame_popup_grab, vFpp)
+GO(libdecor_frame_popup_ungrab, vFpp)
+GO(libdecor_frame_ref, vFp)
+GO(libdecor_frame_resize, vFppuu)
+GO(libdecor_frame_set_app_id, vFpp)
+GO(libdecor_frame_set_capabilities, vFpu)
+GO(libdecor_frame_set_fullscreen, vFpp)
+GO(libdecor_frame_set_max_content_size, vFpii)
+GO(libdecor_frame_set_maximized, vFp)
+GO(libdecor_frame_set_min_content_size, vFpii)
+GO(libdecor_frame_set_minimized, vFp)
+GO(libdecor_frame_set_parent, vFpp)
+GO(libdecor_frame_set_title, vFpp)
+GO(libdecor_frame_set_visibility, vFpi)
+GO(libdecor_frame_show_window_menu, vFppuii)
+//GO(libdecor_frame_toplevel_commit,
+GO(libdecor_frame_translate_coordinate, vFpiipp)
+GO(libdecor_frame_unref, vFp)
+GO(libdecor_frame_unset_capabilities, vFpu)
+GO(libdecor_frame_unset_fullscreen, vFp)
+GO(libdecor_frame_unset_maximized, vFp)
+GO(libdecor_get_fd, iFp)
+//GO(libdecor_get_wl_display,
+GO(libdecor_new, pFpp)
+//GO(libdecor_notify_plugin_error,
+//GO(libdecor_notify_plugin_ready,
+//GO(libdecor_plugin_init,
+//GO(libdecor_plugin_release,
+GO(libdecor_state_free, vFp)
+//GO(libdecor_state_get_content_height,
+//GO(libdecor_state_get_content_width,
+//GO(libdecor_state_get_window_state,
+GO(libdecor_state_new, pFii)
+GO(libdecor_unref, vFp)
diff --git a/src/wrapped/wrappedlibasound_private.h b/src/wrapped/wrappedlibasound_private.h
index d748fd02..5c59aa50 100644
--- a/src/wrapped/wrappedlibasound_private.h
+++ b/src/wrapped/wrappedlibasound_private.h
@@ -4,7 +4,7 @@
 
 DATAB(alsa_lisp_nil, 4)
 DATAB(alsa_lisp_t, 4)
-DATAB(snd_config, 4)
+DATAB(snd_config, 8)
 DATAB(_snd_config_hook_load_dlsym_config_hook_001, 4)
 DATAB(_snd_config_hook_load_for_all_cards_dlsym_config_hook_001, 4)
 DATAB(__snd_ctl_hw_open_dlsym_control_001, 4)
@@ -72,20 +72,20 @@ GO(snd_shm_area_share, pFp)
 GO(snd_shm_area_destroy, iFp)
 GO(snd_user_file, iFpp)
 GO(snd_input_stdio_open, iFppp)
-GO(snd_input_stdio_attach, iFppi)
+GO(snd_input_stdio_attach, iFpSi)
 GO(snd_input_buffer_open, iFppl)
 GO(snd_input_close, iFp)
-//GOM(snd_input_scanf, iFppV)
+//GOM(snd_input_scanf, iFEppV)
 GO(snd_input_gets, pFppL)
 GO(snd_input_getc, iFp)
 GO(snd_input_ungetc, iFpi)
 GO(snd_output_stdio_open, iFppp)
-GO(snd_output_stdio_attach, iFppi)
+GO(snd_output_stdio_attach, iFpSi)
 GO(snd_output_buffer_open, iFp)
 GO(snd_output_buffer_string, LFpp)
 GO(snd_output_close, iFp)
-//GOM(snd_output_printf, iFppV)
-//GOM(snd_output_vprintf, iFppA)
+//GOM(snd_output_printf, iFEppV)
+//GOM(snd_output_vprintf, iFEppA)
 GO(snd_output_puts, iFpp)
 GO(snd_output_putc, iFpi)
 GO(snd_output_flush, iFp)
@@ -100,7 +100,7 @@ GO(snd_config_update_r, iFppp)
 GO(snd_config_update_free, iFp)
 GO(snd_config_update_free_global, iFv)
 GO(snd_config_search, iFppp)
-//GOM(snd_config_searchv, iFppV)
+//GOM(snd_config_searchv, iFEppV)
 GO(snd_config_search_definition, iFpppp)
 GO(snd_config_expand, iFppppp)
 GO(snd_config_evaluate, iFpppp)
@@ -152,6 +152,7 @@ GO(snd_device_name_hint, iFipp)
 GO(snd_names_list, iFpp)
 GO(snd_names_list_free, vFp)
 GO(snd_pcm_format_mask_sizeof, LFv)
+GO(snd_pcm_free_chmaps, vFp)
 GO(snd_pcm_subformat_mask_sizeof, LFv)
 GO(snd_pcm_status_sizeof, LFv)
 GOM(snd_async_add_pcm_handler, iFEpppp)
@@ -408,6 +409,7 @@ GO(snd_pcm_poll_descriptors, iFppu)
 GO(snd_pcm_poll_descriptors_count, iFp)
 GO(snd_pcm_poll_descriptors_revents, iFppup)
 GO(snd_pcm_prepare, iFp)
+GO(snd_pcm_query_chmaps, pFp)
 GO(snd_pcm_readi, lFppL)
 GO(snd_pcm_readn, lFppL)
 GO(snd_pcm_recover, iFpii)
@@ -561,7 +563,7 @@ GO(snd_timer_query_status, iFpp)
 GO(snd_timer_open, iFppi)
 GO(snd_timer_open_lconf, iFppip)
 GO(snd_timer_close, iFp)
-//GOM(snd_async_add_timer_handler, iFpppp)
+//GOM(snd_async_add_timer_handler, iFEpppp)
 GO(snd_async_handler_get_timer, pFp)
 GO(snd_timer_poll_descriptors_count, iFp)
 GO(snd_timer_poll_descriptors, iFppu)
@@ -678,7 +680,7 @@ GO(snd_ctl_open, iFppi)
 GO(snd_ctl_open_lconf, iFppip)
 GO(snd_ctl_close, iFp)
 GO(snd_ctl_nonblock, iFpi)
-//GOM(snd_async_add_ctl_handler, iFpppp)
+//GOM(snd_async_add_ctl_handler, iFEpppp)
 GO(snd_async_handler_get_ctl, pFp)
 GO(snd_ctl_poll_descriptors_count, iFp)
 GO(snd_ctl_poll_descriptors, iFppu)
@@ -861,11 +863,11 @@ GO(snd_hctl_poll_descriptors_count, iFp)
 GO(snd_hctl_poll_descriptors, iFppu)
 GO(snd_hctl_poll_descriptors_revents, iFppup)
 GO(snd_hctl_get_count, uFp)
-//GOM(snd_hctl_set_compare, iFpp)
+//GOM(snd_hctl_set_compare, iFEpp)
 GO(snd_hctl_first_elem, pFp)
 GO(snd_hctl_last_elem, pFp)
 GO(snd_hctl_find_elem, pFpp)
-//GOM(snd_hctl_set_callback, vFpp)
+//GOM(snd_hctl_set_callback, vFEpp)
 GO(snd_hctl_set_callback_private, vFpp)
 GO(snd_hctl_get_callback_private, pFp)
 GO(snd_hctl_load, iFp)
@@ -890,7 +892,7 @@ GO(snd_hctl_elem_get_device, uFp)
 GO(snd_hctl_elem_get_subdevice, uFp)
 GO(snd_hctl_elem_get_name, pFp)
 GO(snd_hctl_elem_get_index, uFp)
-//GOM(snd_hctl_elem_set_callback, vFpp)
+//GOM(snd_hctl_elem_set_callback, vFEpp)
 GO(snd_hctl_elem_get_callback_private, pFp)
 GO(snd_hctl_elem_set_callback_private, vFpp)
 GO(snd_sctl_build, iFppppi)
@@ -914,7 +916,7 @@ GO(snd_mixer_load, iFp)
 GO(snd_mixer_free, vFp)
 GO(snd_mixer_wait, iFpi)
 GOM(snd_mixer_set_compare, iFEpp)
-//GOM(snd_mixer_set_callback, vFpp)
+//GOM(snd_mixer_set_callback, vFEpp)
 GO(snd_mixer_get_callback_private, pFp)
 GO(snd_mixer_set_callback_private, vFpp)
 GO(snd_mixer_get_count, uFp)
@@ -1277,4 +1279,4 @@ GO(snd_seq_parse_address, iFppp)
 
 GO(snd_hwdep_info_get_iface, uFp)
 DATAM(snd_lib_error, 8)
-GO(superdummy_error_handler, vFpipipV)    // dummy to have the bridge definition
+GO(superdummy_error_handler, vFpipipV)
diff --git a/src/wrapped/wrappedlibbsd_private.h b/src/wrapped/wrappedlibbsd_private.h
index bded8d13..06a7ef9c 100644
--- a/src/wrapped/wrappedlibbsd_private.h
+++ b/src/wrapped/wrappedlibbsd_private.h
@@ -108,5 +108,5 @@ GO(setprogname, vFp)
 //GO(vis, 
 //GO(vwarnc, 
 //GO(warnc, 
-//GO(wcslcat, 
-//GO(wcslcpy, 
+GO(wcslcat, LFppL)
+GO(wcslcpy, LFppL)
diff --git a/src/wrapped/wrappedlibdrm.c b/src/wrapped/wrappedlibdrm.c
index 73005e57..005c3ee9 100644
--- a/src/wrapped/wrappedlibdrm.c
+++ b/src/wrapped/wrappedlibdrm.c
@@ -28,6 +28,81 @@ const char* libdrmName = "libdrm.so.2";
 
 #include "wrappercallback.h"
 
+
+#define SUPER() \
+    GO(0)       \
+    GO(1)       \
+    GO(2)       \
+    GO(3)       \
+    GO(4)       \
+    GO(5)       \
+    GO(6)       \
+    GO(7)       \
+    GO(8)       \
+    GO(9)       \
+    GO(10)      \
+    GO(11)      \
+    GO(12)      \
+    GO(13)      \
+    GO(14)      \
+    GO(15)
+
+// vblank_handler
+#define GO(A)                                                                                                                    \
+    static uintptr_t my_vblank_handler_fct_##A = 0;                                                                              \
+    static void my_vblank_handler_##A(int fd, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void* user_data) \
+    {                                                                                                                            \
+        RunFunctionFmt(my_vblank_handler_fct_##A, "iuuup", fd, sequence, tv_sec, tv_usec, user_data);                            \
+    }
+SUPER()
+#undef GO
+static void* find_vblank_handlerFct(void* fct)
+{
+    if (!fct) return fct;
+    if (GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
+#define GO(A) \
+    if (my_vblank_handler_fct_##A == (uintptr_t)fct) return my_vblank_handler_##A;
+    SUPER()
+#undef GO
+#define GO(A)                                       \
+    if (my_vblank_handler_fct_##A == 0) {           \
+        my_vblank_handler_fct_##A = (uintptr_t)fct; \
+        return my_vblank_handler_##A;               \
+    }
+    SUPER()
+#undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gobject vblank_handler callback\n");
+    return NULL;
+}
+
+// page_flip_handler
+#define GO(A)                                                                                                                       \
+    static uintptr_t my_page_flip_handler_fct_##A = 0;                                                                              \
+    static void my_page_flip_handler_##A(int fd, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void* user_data) \
+    {                                                                                                                               \
+        RunFunctionFmt(my_page_flip_handler_fct_##A, "iuuup", fd, sequence, tv_sec, tv_usec, user_data);                            \
+    }
+SUPER()
+#undef GO
+static void* find_page_flip_handlerFct(void* fct)
+{
+    if (!fct) return fct;
+    if (GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct);
+#define GO(A) \
+    if (my_page_flip_handler_fct_##A == (uintptr_t)fct) return my_page_flip_handler_##A;
+    SUPER()
+#undef GO
+#define GO(A)                                          \
+    if (my_page_flip_handler_fct_##A == 0) {           \
+        my_page_flip_handler_fct_##A = (uintptr_t)fct; \
+        return my_page_flip_handler_##A;               \
+    }
+    SUPER()
+#undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gobject page_flip_handler callback\n");
+    return NULL;
+}
+
 EXPORT void my_drmMsg(x64emu_t* emu, void* fmt, void* b) {
     myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1);
     PREPARE_VALIST;
@@ -38,4 +113,21 @@ EXPORT void my_drmMsg(x64emu_t* emu, void* fmt, void* b) {
     free(buf);
 }
 
+typedef struct drmEventContext_s {
+    int version;
+    void (*vblank_handler)(int fd, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void* user_data);
+    void (*page_flip_handler)(int fd, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void* user_data);
+} drmEventContext_t, *drmEventContextPtr_t;
+
+
+EXPORT void my_drmHandleEvent(x64emu_t* emu, int fd, drmEventContextPtr_t evctx)
+{
+    drmEventContext_t ctx = { 0 };
+    ctx.version = evctx->version;
+    ctx.vblank_handler = find_vblank_handlerFct(evctx->vblank_handler);
+    ctx.page_flip_handler = find_page_flip_handlerFct(evctx->page_flip_handler);
+    my->drmHandleEvent(fd, &ctx);
+}
+
+
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibdrm_private.h b/src/wrapped/wrappedlibdrm_private.h
index 47df162d..c310e58e 100644
--- a/src/wrapped/wrappedlibdrm_private.h
+++ b/src/wrapped/wrappedlibdrm_private.h
@@ -1,183 +1,184 @@
 #if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
-#error Meh....
+#error Meh...
 #endif
 
-//GO(drmAddBufs, 
-//GO(drmAddContextPrivateMapping, 
-//GO(drmAddContextTag, 
-//GO(drmAddMap, 
-//GO(drmAgpAcquire, 
-//GO(drmAgpAlloc, 
-//GO(drmAgpBase, 
-//GO(drmAgpBind, 
-//GO(drmAgpDeviceId, 
-//GO(drmAgpEnable, 
-//GO(drmAgpFree, 
-//GO(drmAgpGetMode, 
-//GO(drmAgpMemoryAvail, 
-//GO(drmAgpMemoryUsed, 
-//GO(drmAgpRelease, 
-//GO(drmAgpSize, 
-//GO(drmAgpUnbind, 
-//GO(drmAgpVendorId, 
-//GO(drmAgpVersionMajor, 
-//GO(drmAgpVersionMinor, 
+GO(drmAddBufs, iFiiiui)
+GO(drmAddContextPrivateMapping, iFiuu)
+GO(drmAddContextTag, iFiup)
+GO(drmAddMap, iFiuuuup)
+GO(drmAgpAcquire, iFi)
+GO(drmAgpAlloc, iFiLLpp)
+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, 
-//GO(drmCheckModesettingSupported, 
-//GO(drmClose, 
-//GO(drmCloseOnce, 
-//GO(drmCommandNone, 
+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, 
-//GO(drmCreateDrawable, 
-//GO(drmCrtcGetSequence, 
-//GO(drmCrtcQueueSequence, 
-//GO(drmCtlInstHandler, 
-//GO(drmCtlUninstHandler, 
-//GO(drmDelContextTag, 
-//GO(drmDestroyContext, 
-//GO(drmDestroyDrawable, 
-//GO(drmDevicesEqual, 
-//GO(drmDMA, 
-//GO(drmDropMaster, 
-//GO(drmError, 
-//GO(drmFinish, 
-//GO(drmFree, 
-//GO(drmFreeBufs, 
-//GO(drmFreeBusid, 
-//GO(drmFreeDevice, 
+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, iFpp)
+GO(drmDMA, iFip)
+GO(drmDropMaster, iFi)
+GO(drmError, iFip)
+GO(drmFinish, iFiiu)
+GO(drmFree, vFp)
+GO(drmFreeBufs, iFiip)
+GO(drmFreeBusid, vFp)
+GO(drmFreeDevice, vFp)
 GO(drmFreeDevices, vFpi)
-//GO(drmFreeReservedContextList, 
+GO(drmFreeReservedContextList, vFp)
 GO(drmFreeVersion, vFp)
-//GO(drmGetBufInfo, 
-//GO(drmGetBusid, 
-//GO(drmGetCap, 
-//GO(drmGetClient, 
-//GO(drmGetContextFlags, 
-//GO(drmGetContextPrivateMapping, 
-//GO(drmGetContextTag, 
-//GO(drmGetDevice, 
-//GO(drmGetDevice2, 
+GO(drmGetBufInfo, pFi)
+GO(drmGetBusid, pFi)
+GO(drmGetCap, iFiUp)
+GO(drmGetClient, iFiippppp)
+GO(drmGetContextFlags, iFiup)
+GO(drmGetContextPrivateMapping, iFiup)
+GO(drmGetContextTag, pFiu)
+GO(drmGetDevice, iFip)
+GO(drmGetDevice2, iFiup)
 GO(drmGetDeviceNameFromFd, pFi)
-//GO(drmGetDeviceNameFromFd2, 
+GO(drmGetDeviceNameFromFd2, pFi)
 GO(drmGetDevices, iFpi)
 GO(drmGetDevices2, iFupi)
-//GO(drmGetEntry, 
-//GO(drmGetHashTable, 
-//GO(drmGetInterruptFromBusID, 
-//GO(drmGetLibVersion, 
-//GO(drmGetLock, 
+//GOM(drmGetEntry, pFEi)
+GO(drmGetHashTable, pFv)
+GO(drmGetInterruptFromBusID, iFiiii)
+GO(drmGetLibVersion, pFi)
+GO(drmGetLock, iFiuu)
 GO(drmGetMagic, iFip)
-//GO(drmGetMap, 
+GO(drmGetMap, iFiipppppp)
 GO(drmGetNodeTypeFromFd, iFi)
 GO(drmGetPrimaryDeviceNameFromFd, pFi)
-//GO(drmGetRenderDeviceNameFromFd, 
-//GO(drmGetReservedContextList, 
-//GO(drmGetStats, 
+GO(drmGetRenderDeviceNameFromFd, pFi)
+GO(drmGetReservedContextList, pFip)
+GO(drmGetStats, iFip)
 GO(drmGetVersion, pFi)
-GO(drmHandleEvent, iFip)    //warning, p is *drmHandleEvent that needs wrapping, plenty of function pointer there
+GOM(drmHandleEvent, iFEip)
 GO(drmHashCreate, pFv)
 GO(drmHashDelete, iFpL)
 GO(drmHashDestroy, iFp)
 GO(drmHashFirst, iFppp)
-GO(drmHashInsert, iFpLL)
+GO(drmHashInsert, iFpLp)
 GO(drmHashLookup, iFpLp)
 GO(drmHashNext, iFppp)
 GO(drmIoctl, iFiLp)
-//GO(drmIsMaster, 
-//GO(drmMalloc, 
-//GO(drmMap, 
-//GO(drmMapBufs, 
-//GO(drmMarkBufs, 
+GO(drmIsMaster, iFi)
+GO(drmMalloc, pFi)
+GO(drmMap, iFiuup)
+GO(drmMapBufs, pFi)
+GO(drmMarkBufs, iFidd)
 GO(drmModeAddFB, iFiuuCCuup)
-//GO(drmModeAddFB2, 
-//GO(drmModeAddFB2WithModifiers, 
-//GO(drmModeAtomicAddProperty, 
-//GO(drmModeAtomicAlloc, 
-//GO(drmModeAtomicCommit, 
-//GO(drmModeAtomicDuplicate, 
-//GO(drmModeAtomicFree, 
-//GO(drmModeAtomicGetCursor, 
-//GO(drmModeAtomicMerge, 
-//GO(drmModeAtomicSetCursor, 
-//GO(drmModeAttachMode, 
-//GO(drmModeConnectorSetProperty, 
-//GO(drmModeCreateLease, 
-//GO(drmModeCreatePropertyBlob, 
-//GO(drmModeCrtcGetGamma, 
-//GO(drmModeCrtcSetGamma, 
-//GO(drmModeDestroyPropertyBlob, 
-//GO(drmModeDetachMode, 
-//GO(drmModeDirtyFB, 
+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, vFp)
 GO(drmModeFreeCrtc, vFp)
 GO(drmModeFreeEncoder, vFp)
-//GO(drmModeFreeFB, 
-//GO(drmModeFreeModeInfo, 
-//GO(drmModeFreeObjectProperties, 
-//GO(drmModeFreePlane, 
-//GO(drmModeFreePlaneResources, 
-//GO(drmModeFreeProperty, 
-//GO(drmModeFreePropertyBlob, 
+GO(drmModeFreeFB, vFp)
+GO(drmModeFreeModeInfo, vFp)
+GO(drmModeFreeObjectProperties, vFp)
+GO(drmModeFreePlane, vFp)
+GO(drmModeFreePlaneResources, vFp)
+GO(drmModeFreeProperty, vFp)
+GO(drmModeFreePropertyBlob, vFp)
 GO(drmModeFreeResources, vFp)
 GO(drmModeGetConnector, pFiu)
-//GO(drmModeGetConnectorCurrent, 
+GO(drmModeGetConnectorCurrent, pFiu)
+GO(drmModeGetConnectorTypeName, pFu)
 GO(drmModeGetCrtc, pFiu)
 GO(drmModeGetEncoder, pFiu)
-//GO(drmModeGetFB, 
-//GO(drmModeGetLease, 
-//GO(drmModeGetPlane, 
-//GO(drmModeGetPlaneResources, 
-//GO(drmModeGetProperty, 
-//GO(drmModeGetPropertyBlob, 
+GO(drmModeGetFB, pFiu)
+//GOM(drmModeGetLease, pFEi)
+GO(drmModeGetPlane, pFiu)
+GO(drmModeGetPlaneResources, pFi)
+GO(drmModeGetProperty, pFiu)
+GO(drmModeGetPropertyBlob, pFiu)
 GO(drmModeGetResources, pFi)
-//GO(drmModeListLessees, 
-//GO(drmModeMoveCursor, 
-//GO(drmModeObjectGetProperties, 
-//GO(drmModeObjectSetProperty, 
+//GOM(drmModeListLessees, pFEi)
+GO(drmModeMoveCursor, iFiuii)
+GO(drmModeObjectGetProperties, pFiuu)
+GO(drmModeObjectSetProperty, iFiuuuU)
 GO(drmModePageFlip, iFiuuup)
-//GO(drmModePageFlipTarget, 
-//GO(drmModeRevokeLease, 
+GO(drmModePageFlipTarget, iFiuuupu)
+GO(drmModeRevokeLease, iFiu)
 GO(drmModeRmFB, iFiu)
 GO(drmModeSetCrtc, iFiuuuupip)
-//GO(drmModeSetCursor, 
-//GO(drmModeSetCursor2, 
-//GO(drmModeSetPlane, 
+GO(drmModeSetCursor, iFiuuuu)
+GO(drmModeSetCursor2, iFiuuuuii)
+GO(drmModeSetPlane, iFiuuuuiiuuuuuu)
 GOM(drmMsg, vFEpV)
-//GO(drmOpen, 
-//GO(drmOpenControl, 
-//GO(drmOpenOnce, 
-//GO(drmOpenOnceWithType, 
-//GO(drmOpenRender, 
-//GO(drmOpenWithType, 
+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, 
-//GO(drmRandomCreate, 
-//GO(drmRandomDestroy, 
-//GO(drmRandomDouble, 
-//GO(drmRmMap, 
-//GO(drmScatterGatherAlloc, 
-//GO(drmScatterGatherFree, 
-//GO(drmSetBusid, 
-//GO(drmSetClientCap, 
-//GO(drmSetContextFlags, 
-//GO(drmSetInterfaceVersion, 
-//GO(drmSetMaster, 
-//GO(drmSetServerInfo, 
-//GO(drmSLCreate, 
-//GO(drmSLDelete, 
-//GO(drmSLDestroy, 
-//GO(drmSLDump, 
-//GO(drmSLFirst, 
-//GO(drmSLInsert, 
-//GO(drmSLLookup, 
-//GO(drmSLLookupNeighbors, 
-//GO(drmSLNext, 
-//GO(drmSwitchToContext, 
+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, vFEp)
+GO(drmSLCreate, pFv)
+GO(drmSLDelete, iFpL)
+GO(drmSLDestroy, iFp)
+GO(drmSLDump, vFp)
+GO(drmSLFirst, iFppp)
+GO(drmSLInsert, iFpLp)
+GO(drmSLLookup, iFpLp)
+GO(drmSLLookupNeighbors, iFpLpppp)
+GO(drmSLNext, iFppp)
+GO(drmSwitchToContext, iFiu)
 GO(drmSyncobjCreate, iFiup)
 GO(drmSyncobjDestroy, iFiu)
 GO(drmSyncobjExportSyncFile, iFiup)
@@ -192,8 +193,8 @@ GO(drmSyncobjTimelineSignal, iFippu)
 GO(drmSyncobjTimelineWait, iFippuIup)
 GO(drmSyncobjTransfer, iFiuUuUu)
 GO(drmSyncobjWait, iFipuIup)
-//GO(drmUnlock, 
-//GO(drmUnmap, 
-//GO(drmUnmapBufs, 
-//GO(drmUpdateDrawableInfo, 
-//GO(drmWaitVBlank, 
+GO(drmUnlock, iFiu)
+GO(drmUnmap, iFpu)
+GO(drmUnmapBufs, iFp)
+GO(drmUpdateDrawableInfo, iFiuuup)
+GO(drmWaitVBlank, iFip)
diff --git a/src/wrapped/wrappedpulse.c b/src/wrapped/wrappedpulse.c
index 9ee53f95..1a02b27e 100644
--- a/src/wrapped/wrappedpulse.c
+++ b/src/wrapped/wrappedpulse.c
@@ -534,6 +534,29 @@ static void* find_subscribe_context_Fct(void* fct)
     return NULL;
 }
 
+// operation_state
+#define GO(A)                                                       \
+static uintptr_t my_operation_state_fct_##A = 0;                       \
+static void my_operation_state_##A(void* o, void* data)                \
+{                                                                   \
+    RunFunctionFmt(my_operation_state_fct_##A, "pp", o, data);   \
+}
+SUPER()
+#undef GO
+static void* find_operation_state_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_operation_state_fct_##A == (uintptr_t)fct) return my_operation_state_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_operation_state_fct_##A == 0) {my_operation_state_fct_##A = (uintptr_t)fct; return my_operation_state_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for pulse audio operation_state callback\n");
+    return NULL;
+}
+
 // stream_state
 #define GO(A)                                                       \
 static uintptr_t my_stream_state_fct_##A = 0;                       \
@@ -1375,6 +1398,14 @@ EXPORT void* my_pa_context_get_source_info_by_name(x64emu_t* emu, void* context,
     return my->pa_context_get_source_info_by_name(context, name, find_module_info_Fct(cb), data);
 }
 
+// Operation functions
+
+EXPORT void my_pa_operation_set_state_callback(x64emu_t* emu, void* stream, void* cb, void* data)
+{
+    my->pa_operation_set_state_callback(stream, find_operation_state_Fct(cb), data);
+}
+
+
 // Stream functions
 
 EXPORT void* my_pa_stream_drain(x64emu_t* emu, void* stream, void* cb, void* data)
diff --git a/src/wrapped/wrappedpulse_private.h b/src/wrapped/wrappedpulse_private.h
index 032e1256..132e70df 100644
--- a/src/wrapped/wrappedpulse_private.h
+++ b/src/wrapped/wrappedpulse_private.h
@@ -164,6 +164,7 @@ GO(pa_msleep, iFL)
 GO(pa_operation_cancel, vFp)
 GO(pa_operation_get_state, uFp)
 GO(pa_operation_ref, pFp)
+GOM(pa_operation_set_state_callback, vFEppp)
 GO(pa_operation_unref, vFp)
 GO(pa_parse_sample_format, iFp)
 GO(pa_path_get_filename, pFp)