about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h4
-rw-r--r--src/wrapped/generated/functions_list.txt12
-rw-r--r--src/wrapped/generated/wrappedlberdefs.h8
-rw-r--r--src/wrapped/generated/wrappedlbertypes.h17
-rw-r--r--src/wrapped/generated/wrappedlberundefs.h8
-rw-r--r--src/wrapped/generated/wrappedldaprdefs.h8
-rw-r--r--src/wrapped/generated/wrappedldaprtypes.h19
-rw-r--r--src/wrapped/generated/wrappedldaprundefs.h8
-rw-r--r--src/wrapped/generated/wrapper.c17
-rw-r--r--src/wrapped/generated/wrapper.h8
-rwxr-xr-xsrc/wrapped/wrappedlber.c24
-rwxr-xr-xsrc/wrapped/wrappedlber_private.h140
-rwxr-xr-xsrc/wrapped/wrappedldapr.c113
-rwxr-xr-xsrc/wrapped/wrappedldapr_private.h510
14 files changed, 894 insertions, 2 deletions
diff --git a/src/library_list.h b/src/library_list.h
index cbfdf2fe..e25b8d88 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -155,8 +155,8 @@ GO("libcups.so.2", libcups)
 //GO("libwayland-client.so.0", waylandclient)
 GO("libxml2.so.2", xml2)
 //GO("libxslt.so.1", xslt)
-//GO("libldap_r-2.4.so.2", ldapr)
-//GO("liblber-2.4.so.2", lber)
+GO("libldap_r-2.4.so.2", ldapr)
+GO("liblber-2.4.so.2", lber)
 //GO("libnsl.so.1", nsl)
 //GO("liblcms2.so.2", lcms2)
 GO("libkrb5.so.3", krb5)
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 59b66fce..a0109dde 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -452,6 +452,7 @@
 #() LFpLp
 #() LFppi
 #() LFppL
+#() LFppp
 #() LFSpL
 #() pFEip
 #() pFEiV
@@ -1490,6 +1491,7 @@
 #() iFpppippp
 #() iFpppuiii
 #() iFppppiii
+#() iFppppipp
 #() iFppppdpi
 #() iFpppppip
 #() iFpppppup
@@ -1604,7 +1606,9 @@
 #() iFpppipipi
 #() iFpppipppp
 #() iFppppiipi
+#() iFppppippp
 #() iFppppppii
+#() iFpppppppi
 #() iFpppppppp
 #() uFEipipppp
 #() uFEpiupppp
@@ -1674,6 +1678,7 @@
 #() iFEpiiiiipi
 #() iFEpppipppp
 #() iFEppplPPPP
+#() iFEpppppupp
 #() iFEppPPPPPP
 #() iFiiiiiiiip
 #() iFiiiipiiip
@@ -1784,6 +1789,7 @@
 #() iFEpppipppppp
 #() iFEppppiiiiuu
 #() iFiiiiiiiiiip
+#() iFppippipppip
 #() iFppppiiuuiiL
 #() uFEpLiupppLuV
 #() uFEpLippppLup
@@ -1857,12 +1863,14 @@
 #() vFppuiiiiipuiiiiiiii
 #() vFpppipppppppppppppp
 #() iFpppppppppppppppppp
+#() LFpppppppppppppppppp
 #() pFippppppppppppppppp
 #() vFpiiiiiiiiiiiiiiiiii
 #() pFiiiippppppppppppppp
 #() pFpippppppppppppppppp
 #() iFpppppppppppppppppppppp
 #() pFipppppppppppppppppppppp
+#() iFpppppppppppppppppppppppppppppppppp
 #defined(HAVE_LD80BITS) DFD
 #defined(HAVE_LD80BITS) vFppippDDC
 #!defined(HAVE_LD80BITS) KFK
@@ -2373,6 +2381,10 @@ wrappedgtkx112:
 wrappedkrb5:
 - iFppppppipp:
   - krb5_get_init_creds_password
+wrappedlber:
+wrappedldapr:
+- iFpppppupp:
+  - ldap_sasl_interactive_bind_s
 wrappedldlinux:
 - pFp:
   - __tls_get_addr
diff --git a/src/wrapped/generated/wrappedlberdefs.h b/src/wrapped/generated/wrappedlberdefs.h
new file mode 100644
index 00000000..29e36b09
--- /dev/null
+++ b/src/wrapped/generated/wrappedlberdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlberDEFS_H_
+#define __wrappedlberDEFS_H_
+
+
+#endif // __wrappedlberDEFS_H_
diff --git a/src/wrapped/generated/wrappedlbertypes.h b/src/wrapped/generated/wrappedlbertypes.h
new file mode 100644
index 00000000..62111cfe
--- /dev/null
+++ b/src/wrapped/generated/wrappedlbertypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlberTYPES_H_
+#define __wrappedlberTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedlberTYPES_H_
diff --git a/src/wrapped/generated/wrappedlberundefs.h b/src/wrapped/generated/wrappedlberundefs.h
new file mode 100644
index 00000000..73e3bc35
--- /dev/null
+++ b/src/wrapped/generated/wrappedlberundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlberUNDEFS_H_
+#define __wrappedlberUNDEFS_H_
+
+
+#endif // __wrappedlberUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedldaprdefs.h b/src/wrapped/generated/wrappedldaprdefs.h
new file mode 100644
index 00000000..66f62194
--- /dev/null
+++ b/src/wrapped/generated/wrappedldaprdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedldaprDEFS_H_
+#define __wrappedldaprDEFS_H_
+
+
+#endif // __wrappedldaprDEFS_H_
diff --git a/src/wrapped/generated/wrappedldaprtypes.h b/src/wrapped/generated/wrappedldaprtypes.h
new file mode 100644
index 00000000..48a4b90e
--- /dev/null
+++ b/src/wrapped/generated/wrappedldaprtypes.h
@@ -0,0 +1,19 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedldaprTYPES_H_
+#define __wrappedldaprTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef int64_t (*iFpppppupp_t)(void*, void*, void*, void*, void*, uint64_t, void*, void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(ldap_sasl_interactive_bind_s, iFpppppupp_t)
+
+#endif // __wrappedldaprTYPES_H_
diff --git a/src/wrapped/generated/wrappedldaprundefs.h b/src/wrapped/generated/wrappedldaprundefs.h
new file mode 100644
index 00000000..6a78237f
--- /dev/null
+++ b/src/wrapped/generated/wrappedldaprundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedldaprUNDEFS_H_
+#define __wrappedldaprUNDEFS_H_
+
+
+#endif // __wrappedldaprUNDEFS_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 5ee51bbe..8f7b19f5 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -486,6 +486,7 @@ typedef uintptr_t (*LFpLi_t)(void*, uintptr_t, int64_t);
 typedef uintptr_t (*LFpLp_t)(void*, uintptr_t, void*);
 typedef uintptr_t (*LFppi_t)(void*, void*, int64_t);
 typedef uintptr_t (*LFppL_t)(void*, void*, uintptr_t);
+typedef uintptr_t (*LFppp_t)(void*, void*, void*);
 typedef uintptr_t (*LFSpL_t)(void*, void*, uintptr_t);
 typedef void* (*pFEip_t)(x64emu_t*, int64_t, void*);
 typedef void* (*pFEiV_t)(x64emu_t*, int64_t, void*);
@@ -1524,6 +1525,7 @@ typedef int64_t (*iFpppippi_t)(void*, void*, void*, int64_t, void*, void*, int64
 typedef int64_t (*iFpppippp_t)(void*, void*, void*, int64_t, void*, void*, void*);
 typedef int64_t (*iFpppuiii_t)(void*, void*, void*, uint64_t, int64_t, int64_t, int64_t);
 typedef int64_t (*iFppppiii_t)(void*, void*, void*, void*, int64_t, int64_t, int64_t);
+typedef int64_t (*iFppppipp_t)(void*, void*, void*, void*, int64_t, void*, void*);
 typedef int64_t (*iFppppdpi_t)(void*, void*, void*, void*, double, void*, int64_t);
 typedef int64_t (*iFpppppip_t)(void*, void*, void*, void*, void*, int64_t, void*);
 typedef int64_t (*iFpppppup_t)(void*, void*, void*, void*, void*, uint64_t, void*);
@@ -1638,7 +1640,9 @@ typedef int64_t (*iFpppiippp_t)(void*, void*, void*, int64_t, int64_t, void*, vo
 typedef int64_t (*iFpppipipi_t)(void*, void*, void*, int64_t, void*, int64_t, void*, int64_t);
 typedef int64_t (*iFpppipppp_t)(void*, void*, void*, int64_t, void*, void*, void*, void*);
 typedef int64_t (*iFppppiipi_t)(void*, void*, void*, void*, int64_t, int64_t, void*, int64_t);
+typedef int64_t (*iFppppippp_t)(void*, void*, void*, void*, int64_t, void*, void*, void*);
 typedef int64_t (*iFppppppii_t)(void*, void*, void*, void*, void*, void*, int64_t, int64_t);
+typedef int64_t (*iFpppppppi_t)(void*, void*, void*, void*, void*, void*, void*, int64_t);
 typedef int64_t (*iFpppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*);
 typedef uint64_t (*uFEipipppp_t)(x64emu_t*, int64_t, void*, int64_t, void*, void*, void*, void*);
 typedef uint64_t (*uFEpiupppp_t)(x64emu_t*, void*, int64_t, uint64_t, void*, void*, void*, void*);
@@ -1708,6 +1712,7 @@ typedef void (*vFpppppippp_t)(void*, void*, void*, void*, void*, int64_t, void*,
 typedef int64_t (*iFEpiiiiipi_t)(x64emu_t*, void*, int64_t, int64_t, int64_t, int64_t, int64_t, void*, int64_t);
 typedef int64_t (*iFEpppipppp_t)(x64emu_t*, void*, void*, void*, int64_t, void*, void*, void*, void*);
 typedef int64_t (*iFEppplPPPP_t)(x64emu_t*, void*, void*, void*, intptr_t, void*, void*, void*, void*);
+typedef int64_t (*iFEpppppupp_t)(x64emu_t*, void*, void*, void*, void*, void*, uint64_t, void*, void*);
 typedef int64_t (*iFEppPPPPPP_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef int64_t (*iFiiiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*);
 typedef int64_t (*iFiiiipiiip_t)(int64_t, int64_t, int64_t, int64_t, void*, int64_t, int64_t, int64_t, void*);
@@ -1818,6 +1823,7 @@ typedef void (*vFppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*,
 typedef int64_t (*iFEpppipppppp_t)(x64emu_t*, void*, void*, void*, int64_t, void*, void*, void*, void*, void*, void*);
 typedef int64_t (*iFEppppiiiiuu_t)(x64emu_t*, void*, void*, void*, void*, int64_t, int64_t, int64_t, int64_t, uint64_t, uint64_t);
 typedef int64_t (*iFiiiiiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*);
+typedef int64_t (*iFppippipppip_t)(void*, void*, int64_t, void*, void*, int64_t, void*, void*, void*, int64_t, void*);
 typedef int64_t (*iFppppiiuuiiL_t)(void*, void*, void*, void*, int64_t, int64_t, uint64_t, uint64_t, int64_t, int64_t, uintptr_t);
 typedef uint64_t (*uFEpLiupppLuV_t)(x64emu_t*, void*, uintptr_t, int64_t, uint64_t, void*, void*, void*, uintptr_t, uint64_t, void*);
 typedef uint64_t (*uFEpLippppLup_t)(x64emu_t*, void*, uintptr_t, int64_t, void*, void*, void*, void*, uintptr_t, uint64_t, void*);
@@ -1891,12 +1897,14 @@ typedef void* (*pFppippipipipipipip_t)(void*, void*, int64_t, void*, void*, int6
 typedef void (*vFppuiiiiipuiiiiiiii_t)(void*, void*, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t);
 typedef void (*vFpppipppppppppppppp_t)(void*, void*, void*, int64_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef int64_t (*iFpppppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
+typedef uintptr_t (*LFpppppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFippppppppppppppppp_t)(int64_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFpiiiiiiiiiiiiiiiiii_t)(void*, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t);
 typedef void* (*pFiiiippppppppppppppp_t)(int64_t, int64_t, int64_t, int64_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFpippppppppppppppppp_t)(void*, int64_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef int64_t (*iFpppppppppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFipppppppppppppppppppppp_t)(int64_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
+typedef int64_t (*iFpppppppppppppppppppppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 
 #if defined(HAVE_LD80BITS)
 typedef long double (*DFD_t)(long double);
@@ -2376,6 +2384,7 @@ void LFpLi(x64emu_t *emu, uintptr_t fcn) { LFpLi_t fn = (LFpLi_t)fcn; R_RAX=(uin
 void LFpLp(x64emu_t *emu, uintptr_t fcn) { LFpLp_t fn = (LFpLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX); }
 void LFppi(x64emu_t *emu, uintptr_t fcn) { LFppi_t fn = (LFppi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX); }
 void LFppL(x64emu_t *emu, uintptr_t fcn) { LFppL_t fn = (LFppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
+void LFppp(x64emu_t *emu, uintptr_t fcn) { LFppp_t fn = (LFppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void LFSpL(x64emu_t *emu, uintptr_t fcn) { LFSpL_t fn = (LFSpL_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (uintptr_t)R_RDX); }
 void pFEip(x64emu_t *emu, uintptr_t fcn) { pFEip_t fn = (pFEip_t)fcn; R_RAX=(uintptr_t)fn(emu, (int64_t)R_RDI, (void*)R_RSI); }
 void pFEiV(x64emu_t *emu, uintptr_t fcn) { pFEiV_t fn = (pFEiV_t)fcn; R_RAX=(uintptr_t)fn(emu, (int64_t)R_RDI, (void*)(R_RSP + 8)); }
@@ -3414,6 +3423,7 @@ void iFpppippi(x64emu_t *emu, uintptr_t fcn) { iFpppippi_t fn = (iFpppippi_t)fcn
 void iFpppippp(x64emu_t *emu, uintptr_t fcn) { iFpppippp_t fn = (iFpppippp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void iFpppuiii(x64emu_t *emu, uintptr_t fcn) { iFpppuiii_t fn = (iFpppuiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8)); }
 void iFppppiii(x64emu_t *emu, uintptr_t fcn) { iFppppiii_t fn = (iFppppiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8)); }
+void iFppppipp(x64emu_t *emu, uintptr_t fcn) { iFppppipp_t fn = (iFppppipp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void iFppppdpi(x64emu_t *emu, uintptr_t fcn) { iFppppdpi_t fn = (iFppppdpi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, emu->xmm[0].d[0], (void*)R_R8, (int64_t)R_R9); }
 void iFpppppip(x64emu_t *emu, uintptr_t fcn) { iFpppppip_t fn = (iFpppppip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8)); }
 void iFpppppup(x64emu_t *emu, uintptr_t fcn) { iFpppppup_t fn = (iFpppppup_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint64_t)R_R9, *(void**)(R_RSP + 8)); }
@@ -3528,7 +3538,9 @@ void iFpppiippp(x64emu_t *emu, uintptr_t fcn) { iFpppiippp_t fn = (iFpppiippp_t)
 void iFpppipipi(x64emu_t *emu, uintptr_t fcn) { iFpppipipi_t fn = (iFpppipipi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); }
 void iFpppipppp(x64emu_t *emu, uintptr_t fcn) { iFpppipppp_t fn = (iFpppipppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFppppiipi(x64emu_t *emu, uintptr_t fcn) { iFppppiipi_t fn = (iFppppiipi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); }
+void iFppppippp(x64emu_t *emu, uintptr_t fcn) { iFppppippp_t fn = (iFppppippp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFppppppii(x64emu_t *emu, uintptr_t fcn) { iFppppppii_t fn = (iFppppppii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); }
+void iFpppppppi(x64emu_t *emu, uintptr_t fcn) { iFpppppppi_t fn = (iFpppppppi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); }
 void iFpppppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppppp_t fn = (iFpppppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void uFEipipppp(x64emu_t *emu, uintptr_t fcn) { uFEipipppp_t fn = (uFEipipppp_t)fcn; R_RAX=(uint64_t)fn(emu, (int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void uFEpiupppp(x64emu_t *emu, uintptr_t fcn) { uFEpiupppp_t fn = (uFEpiupppp_t)fcn; R_RAX=(uint64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
@@ -3598,6 +3610,7 @@ void vFpppppippp(x64emu_t *emu, uintptr_t fcn) { vFpppppippp_t fn = (vFpppppippp
 void iFEpiiiiipi(x64emu_t *emu, uintptr_t fcn) { iFEpiiiiipi_t fn = (iFEpiiiiipi_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); }
 void iFEpppipppp(x64emu_t *emu, uintptr_t fcn) { iFEpppipppp_t fn = (iFEpppipppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFEppplPPPP(x64emu_t *emu, uintptr_t fcn) { iFEppplPPPP_t fn = (iFEppplPPPP_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (intptr_t)R_RCX, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); }
+void iFEpppppupp(x64emu_t *emu, uintptr_t fcn) { iFEpppppupp_t fn = (iFEpppppupp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFEppPPPPPP(x64emu_t *emu, uintptr_t fcn) { iFEppPPPPPP_t fn = (iFEppPPPPPP_t)fcn; R_RAX=(int64_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 iFiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiip_t fn = (iFiiiiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFiiiipiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiipiiip_t fn = (iFiiiipiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
@@ -3708,6 +3721,7 @@ void vFppppppppppp(x64emu_t *emu, uintptr_t fcn) { vFppppppppppp_t fn = (vFppppp
 void iFEpppipppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppipppppp_t fn = (iFEpppipppppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)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 iFEppppiiiiuu(x64emu_t *emu, uintptr_t fcn) { iFEppppiiiiuu_t fn = (iFEppppiiiiuu_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24), *(uint64_t*)(R_RSP + 32)); }
 void iFiiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiiiip_t fn = (iFiiiiiiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
+void iFppippipppip(x64emu_t *emu, uintptr_t fcn) { iFppippipppip_t fn = (iFppippipppip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
 void iFppppiiuuiiL(x64emu_t *emu, uintptr_t fcn) { iFppppiiuuiiL_t fn = (iFppppiiuuiiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(uintptr_t*)(R_RSP + 40)); }
 void uFEpLiupppLuV(x64emu_t *emu, uintptr_t fcn) { uFEpLiupppLuV_t fn = (uFEpLiupppLuV_t)fcn; R_RAX=(uint64_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24), (void*)(R_RSP + 32)); }
 void uFEpLippppLup(x64emu_t *emu, uintptr_t fcn) { uFEpLippppLup_t fn = (uFEpLippppLup_t)fcn; R_RAX=(uint64_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); }
@@ -3781,12 +3795,14 @@ void pFppippipipipipipip(x64emu_t *emu, uintptr_t fcn) { pFppippipipipipipip_t f
 void vFppuiiiiipuiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFppuiiiiipuiiiiiiii_t fn = (vFppuiiiiipuiiiiiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(uint64_t*)(R_RSP + 32), *(int64_t*)(R_RSP + 40), *(int64_t*)(R_RSP + 48), *(int64_t*)(R_RSP + 56), *(int64_t*)(R_RSP + 64), *(int64_t*)(R_RSP + 72), *(int64_t*)(R_RSP + 80), *(int64_t*)(R_RSP + 88), *(int64_t*)(R_RSP + 96)); }
 void vFpppipppppppppppppp(x64emu_t *emu, uintptr_t fcn) { vFpppipppppppppppppp_t fn = (vFpppipppppppppppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)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 iFpppppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppppppppppppppp_t fn = (iFpppppppppppppppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96)); }
+void LFpppppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { LFpppppppppppppppppp_t fn = (LFpppppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96)); }
 void pFippppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFippppppppppppppppp_t fn = (pFippppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96)); }
 void vFpiiiiiiiiiiiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFpiiiiiiiiiiiiiiiiii_t fn = (vFpiiiiiiiiiiiiiiiiii_t)fcn; fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(int64_t*)(R_RSP + 40), *(int64_t*)(R_RSP + 48), *(int64_t*)(R_RSP + 56), *(int64_t*)(R_RSP + 64), *(int64_t*)(R_RSP + 72), *(int64_t*)(R_RSP + 80), *(int64_t*)(R_RSP + 88), *(int64_t*)(R_RSP + 96), *(int64_t*)(R_RSP + 104)); }
 void pFiiiippppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFiiiippppppppppppppp_t fn = (pFiiiippppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)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 pFpippppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFpippppppppppppppppp_t fn = (pFpippppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)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 iFpppppppppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppppppppppppppppppp_t fn = (iFpppppppppppppppppppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96), *(void**)(R_RSP + 104), *(void**)(R_RSP + 112), *(void**)(R_RSP + 120), *(void**)(R_RSP + 128)); }
 void pFipppppppppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFipppppppppppppppppppppp_t fn = (pFipppppppppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96), *(void**)(R_RSP + 104), *(void**)(R_RSP + 112), *(void**)(R_RSP + 120), *(void**)(R_RSP + 128), *(void**)(R_RSP + 136)); }
+void iFpppppppppppppppppppppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppppppppppppppppppppppppppppppp_t fn = (iFpppppppppppppppppppppppppppppppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(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(HAVE_LD80BITS)
 void DFD(x64emu_t *emu, uintptr_t fcn) { DFD_t fn = (DFD_t)fcn; long double ld=fn(LD2localLD((void*)(R_RSP + 8))); fpu_do_push(emu); ST0val = ld; }
@@ -4214,6 +4230,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &LFpLp) return 1;
 	if (fun == &LFppi) return 1;
 	if (fun == &LFppL) return 1;
+	if (fun == &LFppp) return 1;
 	if (fun == &pFiii) return 1;
 	if (fun == &pFiiu) return 1;
 	if (fun == &pFiip) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 83e6f9fb..ca23a0aa 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -485,6 +485,7 @@ void LFpLi(x64emu_t *emu, uintptr_t fnc);
 void LFpLp(x64emu_t *emu, uintptr_t fnc);
 void LFppi(x64emu_t *emu, uintptr_t fnc);
 void LFppL(x64emu_t *emu, uintptr_t fnc);
+void LFppp(x64emu_t *emu, uintptr_t fnc);
 void LFSpL(x64emu_t *emu, uintptr_t fnc);
 void pFEip(x64emu_t *emu, uintptr_t fnc);
 void pFEiV(x64emu_t *emu, uintptr_t fnc);
@@ -1523,6 +1524,7 @@ void iFpppippi(x64emu_t *emu, uintptr_t fnc);
 void iFpppippp(x64emu_t *emu, uintptr_t fnc);
 void iFpppuiii(x64emu_t *emu, uintptr_t fnc);
 void iFppppiii(x64emu_t *emu, uintptr_t fnc);
+void iFppppipp(x64emu_t *emu, uintptr_t fnc);
 void iFppppdpi(x64emu_t *emu, uintptr_t fnc);
 void iFpppppip(x64emu_t *emu, uintptr_t fnc);
 void iFpppppup(x64emu_t *emu, uintptr_t fnc);
@@ -1637,7 +1639,9 @@ void iFpppiippp(x64emu_t *emu, uintptr_t fnc);
 void iFpppipipi(x64emu_t *emu, uintptr_t fnc);
 void iFpppipppp(x64emu_t *emu, uintptr_t fnc);
 void iFppppiipi(x64emu_t *emu, uintptr_t fnc);
+void iFppppippp(x64emu_t *emu, uintptr_t fnc);
 void iFppppppii(x64emu_t *emu, uintptr_t fnc);
+void iFpppppppi(x64emu_t *emu, uintptr_t fnc);
 void iFpppppppp(x64emu_t *emu, uintptr_t fnc);
 void uFEipipppp(x64emu_t *emu, uintptr_t fnc);
 void uFEpiupppp(x64emu_t *emu, uintptr_t fnc);
@@ -1707,6 +1711,7 @@ void vFpppppippp(x64emu_t *emu, uintptr_t fnc);
 void iFEpiiiiipi(x64emu_t *emu, uintptr_t fnc);
 void iFEpppipppp(x64emu_t *emu, uintptr_t fnc);
 void iFEppplPPPP(x64emu_t *emu, uintptr_t fnc);
+void iFEpppppupp(x64emu_t *emu, uintptr_t fnc);
 void iFEppPPPPPP(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void iFiiiipiiip(x64emu_t *emu, uintptr_t fnc);
@@ -1817,6 +1822,7 @@ void vFppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFEpppipppppp(x64emu_t *emu, uintptr_t fnc);
 void iFEppppiiiiuu(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
+void iFppippipppip(x64emu_t *emu, uintptr_t fnc);
 void iFppppiiuuiiL(x64emu_t *emu, uintptr_t fnc);
 void uFEpLiupppLuV(x64emu_t *emu, uintptr_t fnc);
 void uFEpLippppLup(x64emu_t *emu, uintptr_t fnc);
@@ -1890,12 +1896,14 @@ void pFppippipipipipipip(x64emu_t *emu, uintptr_t fnc);
 void vFppuiiiiipuiiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFpppipppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFpppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
+void LFpppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void pFippppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void vFpiiiiiiiiiiiiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void pFiiiippppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void pFpippppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFpppppppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void pFipppppppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
+void iFpppppppppppppppppppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 
 #if defined(HAVE_LD80BITS)
 void DFD(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlber.c b/src/wrapped/wrappedlber.c
new file mode 100755
index 00000000..c06fa020
--- /dev/null
+++ b/src/wrapped/wrappedlber.c
@@ -0,0 +1,24 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* lberName =
+#ifdef ANDROID
+    "liblber-2.4.so"
+#else
+    "liblber-2.4.so.2"
+#endif
+    ;
+#define LIBNAME lber
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlber_private.h b/src/wrapped/wrappedlber_private.h
new file mode 100755
index 00000000..4f1b1d1a
--- /dev/null
+++ b/src/wrapped/wrappedlber_private.h
@@ -0,0 +1,140 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+//GO(ber_alloc, 
+GO(ber_alloc_t, pFi)
+//GO(ber_bprint, 
+GO(ber_bvarray_add, vFpp)
+//GO(ber_bvarray_add_x, 
+//GO(ber_bvarray_dup_x, 
+GO(ber_bvarray_free, vFp)
+//GO(ber_bvarray_free_x, 
+GO(ber_bvdup, pFp)
+GO(ber_bvecadd, vFpp)
+//GO(ber_bvecadd_x, 
+GO(ber_bvecfree, vFp)
+//GO(ber_bvecfree_x, 
+GO(ber_bvfree, vFp)
+//GO(ber_bvfree_x, 
+//GO(ber_bvreplace, 
+//GO(ber_bvreplace_x, 
+GO(ber_bvstr, pFp)
+GO(ber_bvstrdup, pFp)
+//GO(ber_decode_oid, 
+//GO(ber_dump, 
+//GO(ber_dup, 
+GO(ber_dupbv, pFpp)
+//GO(ber_dupbv_x, 
+//GO(ber_encode_oid, 
+//GO(ber_errno_addr, 
+//GO(ber_error_print, 
+GO(ber_first_element, LFppp)
+GO(ber_flatten, iFpp)
+//GO(ber_flatten2, 
+GO(ber_flush, iFppi)
+GO(ber_flush2, iFppi)
+GO(ber_free, vFpi)
+//GO(ber_free_buf, 
+GO(ber_get_bitstringa, LFppp)
+GO(ber_get_boolean, LFpp)
+GO(ber_get_enum, iFpp)
+GO(ber_get_int, iFpp)
+GO(ber_get_next, LFppp)
+GO(ber_get_null, LFp)
+//GO(ber_get_option, 
+GO(ber_get_stringa, LFpp)
+GO(ber_get_stringal, LFpp)
+//GO(ber_get_stringa_null, 
+GO(ber_get_stringb, LFppp)
+GO(ber_get_stringbv, LFppi)
+//GO(ber_get_stringbv_null, 
+//GO(ber_get_tag, 
+GO(ber_init, pFp)
+GO(ber_init2, vFppi)
+//GO(ber_init_w_nullc, 
+//DATAB(ber_int_errno_fn, 
+//DATAB(ber_int_log_proc, 
+//DATAB(ber_int_memory_fns, 
+//DATAB(ber_int_options, 
+//GO(ber_int_sb_close, 
+//GO(ber_int_sb_destroy, 
+//GO(ber_int_sb_init, 
+//GO(ber_int_sb_read, 
+//GO(ber_int_sb_write, 
+//GO(ber_len, 
+//GO(ber_log_bprint, 
+//GO(ber_log_dump, 
+//GO(ber_log_sos_dump, 
+//GO(ber_mem2bv, 
+//GO(ber_mem2bv_x, 
+//GO(ber_memalloc, 
+//GO(ber_memalloc_x, 
+//GO(ber_memcalloc, 
+//GO(ber_memcalloc_x, 
+//GO(ber_memfree, 
+//GO(ber_memfree_x, 
+//GO(ber_memrealloc, 
+//GO(ber_memrealloc_x, 
+//GO(ber_memvfree, 
+//GO(ber_memvfree_x, 
+GO(ber_next_element, LFppp)
+//GO(ber_peek_element, 
+GO(ber_peek_tag, LFpp)
+GO(ber_printf, iFpppppppppppppppppppppppppppppppppp)    //VAArg. May need some wrapping...
+//GO(ber_ptrlen, 
+//GO(ber_put_berval, 
+GO(ber_put_bitstring, iFppLL)
+GO(ber_put_boolean, iFpiL)
+GO(ber_put_enum, iFpiL)
+GO(ber_put_int, iFpiL)
+GO(ber_put_null, iFpL)
+GO(ber_put_ostring, iFppLL)
+GO(ber_put_seq, iFp)
+GO(ber_put_set, iFp)
+GO(ber_put_string, iFppL)
+//DATAB(ber_pvt_err_file, 
+//GO(ber_pvt_log_output, 
+//DATA(ber_pvt_log_print, 
+//GO(ber_pvt_log_printf, 
+//DATAB(ber_pvt_opt_on, 
+//GO(ber_pvt_sb_buf_destroy, 
+//GO(ber_pvt_sb_buf_init, 
+//GO(ber_pvt_sb_copy_out, 
+//GO(ber_pvt_sb_do_write, 
+//GO(ber_pvt_sb_grow_buffer, 
+//GO(ber_pvt_socket_set_nonblock, 
+//GO(ber_read, 
+//GO(ber_realloc, 
+//GO(ber_remaining, 
+//GO(ber_reset, 
+//GO(ber_rewind, 
+GO(ber_scanf, LFpppppppppppppppppp) // VAArg
+//GO(ber_set_option, 
+//GO(ber_skip_data, 
+//GO(ber_skip_element, 
+GO(ber_skip_tag, LFpp)
+//GO(ber_sockbuf_add_io, 
+//GO(ber_sockbuf_alloc, 
+//GO(ber_sockbuf_ctrl, 
+//GO(ber_sockbuf_free, 
+//DATA(ber_sockbuf_io_debug, 
+//DATA(ber_sockbuf_io_fd, 
+//DATA(ber_sockbuf_io_readahead, 
+//DATA(ber_sockbuf_io_tcp, 
+//GO(ber_sockbuf_remove_io, 
+//GO(ber_sos_dump, 
+//GO(ber_start, 
+GO(ber_start_seq, iFpL)
+GO(ber_start_set, iFpL)
+GO(ber_str2bv, pFpLip)
+//GO(ber_str2bv_x, 
+//GO(ber_strdup, 
+//GO(ber_strdup_x, 
+//GO(ber_strndup, 
+//GO(ber_strndup_x, 
+//GO(ber_strnlen, 
+//GO(ber_write, 
+//GO(der_alloc, 
+//GO(lutil_debug, 
+//GO(lutil_debug_file, 
diff --git a/src/wrapped/wrappedldapr.c b/src/wrapped/wrappedldapr.c
new file mode 100755
index 00000000..734c97d3
--- /dev/null
+++ b/src/wrapped/wrappedldapr.c
@@ -0,0 +1,113 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "box64context.h"
+#include "librarian.h"
+#include "callback.h"
+
+const char* ldaprName =
+#ifdef ANDROID
+    "libldap_r-2.4.so"
+#else
+    "libldap_r-2.4.so.2"
+#endif
+    ;
+#define LIBNAME ldapr
+static library_t *my_lib = NULL;
+
+typedef int     (*iFpppppupp_t)      (void*, void*, void*, void* , void*, unsigned, void*, void*);
+
+#define SUPER()                                     \
+    GO(ldap_sasl_interactive_bind_s, iFpppppupp_t)  \
+
+typedef struct ldapr_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} ldapr_my_t;
+
+void* getLdaprMy(library_t* lib)
+{
+    ldapr_my_t* my = (ldapr_my_t*)calloc(1, sizeof(ldapr_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeLdaprMy(void* lib)
+{
+    //ldapr_my_t *my = (ldapr_my_t *)lib;
+}
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)
+
+// LDAP_SASL_INTERACT_PROC ...
+#define GO(A)   \
+static uintptr_t my_LDAP_SASL_INTERACT_PROC_fct_##A = 0;                                \
+static int my_LDAP_SASL_INTERACT_PROC_##A(void* a, unsigned b, void* c, void* d)        \
+{                                                                                       \
+    return RunFunction(my_context, my_LDAP_SASL_INTERACT_PROC_fct_##A, 4, a, b, c, d);  \
+}
+SUPER()
+#undef GO
+static void* find_LDAP_SASL_INTERACT_PROC_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_LDAP_SASL_INTERACT_PROC_fct_##A == (uintptr_t)fct) return my_LDAP_SASL_INTERACT_PROC_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_LDAP_SASL_INTERACT_PROC_fct_##A == 0) {my_LDAP_SASL_INTERACT_PROC_fct_##A = (uintptr_t)fct; return my_LDAP_SASL_INTERACT_PROC_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libldap_r LDAP_SASL_INTERACT_PROC callback\n");
+    return NULL;
+}
+#undef SUPER
+
+EXPORT int my_ldap_sasl_interactive_bind_s(x64emu_t* emu, void* ld, void* dn, void* mechs, void* sctrls, void* cctrls, unsigned flags, void* f, void* defaults)
+{
+    ldapr_my_t* my = (ldapr_my_t*)my_lib->priv.w.p2;
+
+    return my->ldap_sasl_interactive_bind_s(ld, dn, mechs, sctrls, cctrls, flags, find_LDAP_SASL_INTERACT_PROC_Fct(f), defaults);
+}
+
+#ifdef ANDROID
+#define NEEDED_LIB "liblber-2.4.so"
+#else
+#define NEEDED_LIB "liblber-2.4.so.2"
+#endif
+
+#define CUSTOM_INIT \
+    lib->priv.w.p2 = getLdaprMy(lib);                                           \
+    lib->priv.w.needed = 1;                                                     \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup(NEEDED_LIB);                             \
+    my_lib = lib;
+
+#define CUSTOM_FINI \
+    freeLdaprMy(lib->priv.w.p2); \
+    free(lib->priv.w.p2);       \
+    my_lib = NULL;
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedldapr_private.h b/src/wrapped/wrappedldapr_private.h
new file mode 100755
index 00000000..97ae8fe2
--- /dev/null
+++ b/src/wrapped/wrappedldapr_private.h
@@ -0,0 +1,510 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(ldap_abandon, iFpi)
+GO(ldap_abandon_ext, iFpipp)
+//GO(ldap_add, 
+GO(ldap_add_ext, iFpppppp)
+GO(ldap_add_ext_s, iFppppp)
+//GO(ldap_add_result_entry, 
+//GO(ldap_add_s, 
+//GO(ldap_alloc_ber_with_options, 
+//GO(ldap_append_referral, 
+//GO(ldap_attributetype2bv, 
+//GO(ldap_attributetype2name, 
+//GO(ldap_attributetype2str, 
+//GO(ldap_attributetype_free, 
+GO(ldap_bind, iFpppi)
+GO(ldap_bind_s, iFpppi)
+//GO(ldap_build_add_req, 
+//GO(ldap_build_bind_req, 
+//GO(ldap_build_compare_req, 
+//GO(ldap_build_delete_req, 
+//GO(ldap_build_extended_req, 
+//GO(ldap_build_moddn_req, 
+//GO(ldap_build_modify_req, 
+//GO(ldap_build_search_req, 
+//GO(ldap_bv2dn, 
+//GO(ldap_bv2dn_x, 
+//GO(ldap_bv2escaped_filter_value, 
+//GO(ldap_bv2escaped_filter_value_len, 
+//GO(ldap_bv2escaped_filter_value_x, 
+//GO(ldap_bv2rdn, 
+//GO(ldap_bv2rdn_x, 
+//GO(ldap_cancel, 
+//GO(ldap_cancel_s, 
+//GO(ldap_charray2str, 
+//GO(ldap_charray_add, 
+//GO(ldap_charray_dup, 
+//GO(ldap_charray_free, 
+//GO(ldap_charray_inlist, 
+//GO(ldap_charray_merge, 
+//GO(ldap_chase_referrals, 
+//GO(ldap_chase_v3referrals, 
+//GO(ldap_clear_select_write, 
+//GO(ldap_compare, 
+GO(ldap_compare_ext, iFppppppp)
+GO(ldap_compare_ext_s, iFpppppp)
+//GO(ldap_compare_s, 
+//GO(ldap_connect_to_host, 
+//GO(ldap_connect_to_path, 
+//GO(ldap_contentrule2bv, 
+//GO(ldap_contentrule2name, 
+//GO(ldap_contentrule2str, 
+//GO(ldap_contentrule_free, 
+GO(ldap_control_create, iFpipip)
+GO(ldap_control_dup, pFp)
+GO(ldap_control_find, pFppp)
+GO(ldap_control_free, vFp)
+GO(ldap_controls_dup, pFp)
+GO(ldap_controls_free, vFp)
+GO(ldap_count_entries, iFpp)
+//GO(ldap_count_messages, 
+GO(ldap_count_references, iFpp)
+GO(ldap_count_values, iFp)
+GO(ldap_count_values_len, iFp)
+//GO(ldap_create, 
+//GO(ldap_create_assertion_control, 
+//GO(ldap_create_assertion_control_value, 
+//GO(ldap_create_control, 
+//GO(ldap_create_deref_control, 
+//GO(ldap_create_deref_control_value, 
+//GO(ldap_create_page_control, 
+//GO(ldap_create_page_control_value, 
+//GO(ldap_create_passwordpolicy_control, 
+//GO(ldap_create_session_tracking_control, 
+//GO(ldap_create_session_tracking_value, 
+GO(ldap_create_sort_control, iFppip)
+//GO(ldap_create_sort_control_value, 
+//GO(ldap_create_sort_keylist, 
+GO(ldap_create_vlv_control, iFppp)
+//GO(ldap_create_vlv_control_value, 
+GO(ldap_dcedn2dn, pFp)
+GO(ldap_delete, iFpp)
+GO(ldap_delete_ext, iFppppp)
+GO(ldap_delete_ext_s, iFpppp)
+//GO(ldap_delete_result_entry, 
+GO(ldap_delete_s, iFpp)
+//GO(ldap_derefresponse_free, 
+//GO(ldap_destroy, 
+GO(ldap_dn2ad_canonical, pFp)
+//GO(ldap_dn2bv, 
+//GO(ldap_dn2bv_x, 
+GO(ldap_dn2dcedn, pFp)
+//GO(ldap_dn2domain, 
+GO(ldap_dn2str, iFppu)
+GO(ldap_dn2ufn, pFp)
+//GO(ldap_dnfree, 
+//GO(ldap_dnfree_x, 
+//GO(ldap_dn_normalize, 
+//GO(ldap_domain2dn, 
+//GO(ldap_domain2hostlist, 
+//GO(ldap_dump_connection, 
+//GO(ldap_dump_requests_and_responses, 
+//GO(ldap_dup, 
+//GO(ldap_err2string, 
+GO(ldap_explode_dn, pFpi)
+GO(ldap_explode_rdn, pFpi)
+GO(ldap_extended_operation, iFpppppp)
+GO(ldap_extended_operation_s, iFppppppp)
+//GO(ldap_find_control, 
+//GO(ldap_find_request_by_msgid, 
+GO(ldap_first_attribute, pFppp)
+GO(ldap_first_entry, pFpp)
+//GO(ldap_first_message, 
+GO(ldap_first_reference, pFpp)
+//GO(ldap_free_connection, 
+//GO(ldap_free_request, 
+//GO(ldap_free_select_info, 
+//GO(ldap_free_sort_keylist, 
+//GO(ldap_free_urldesc, 
+//GO(ldap_free_urllist, 
+//GO(ldap_get_attribute_ber, 
+GO(ldap_get_dn, pFpp)
+//GO(ldap_get_dn_ber, 
+//GO(ldap_get_entry_controls, 
+//GO(ldap_get_message_ber, 
+GO(ldap_get_option, iFpip)
+GO(ldap_get_values, pFppp)
+GO(ldap_get_values_len, pFppp)
+//GO(ldap_gssapi_bind, 
+//GO(ldap_gssapi_bind_s, 
+//GO(ldap_host_connected_to, 
+GO(ldap_init, pFpi)
+GO(ldap_init_fd, iFuipp)
+GO(ldap_initialize, iFpp)
+GO(ldap_install_tls, iFp)
+//GO(ldap_int_bisect_delete, 
+//GO(ldap_int_bisect_find, 
+//GO(ldap_int_bisect_insert, 
+//GO(ldap_int_check_async_open, 
+//GO(ldap_int_client_controls, 
+//GO(ldap_int_connect_cbs, 
+//GO(ldap_int_error_init, 
+//GO(ldap_int_flush_request, 
+//DATA(ldap_int_global_options, 
+//DATAB(ldap_int_gmtime_mutex, 
+//DATAB(ldap_int_hostname, 
+//DATAB(ldap_int_hostname_mutex, 
+//DATAB(ldap_int_inet4or6, 
+//GO(ldap_int_initialize, 
+//GO(ldap_int_initialize_global_options, 
+//GO(ldap_int_msgtype2str, 
+//GO(ldap_int_open_connection, 
+//GO(ldap_int_parse_numericoid, 
+//GO(ldap_int_parse_ruleid, 
+//GO(ldap_int_poll, 
+//GO(ldap_int_put_controls, 
+//DATAB(ldap_int_resolv_mutex, 
+//GO(ldap_int_sasl_bind, 
+//GO(ldap_int_sasl_close, 
+//GO(ldap_int_sasl_config, 
+//GO(ldap_int_sasl_external, 
+//GO(ldap_int_sasl_get_option, 
+//GO(ldap_int_sasl_init, 
+//GO(ldap_int_sasl_open, 
+//GO(ldap_int_sasl_set_option, 
+//GO(ldap_int_select, 
+//GO(ldap_int_thread_destroy, 
+//GO(ldap_int_thread_initialize, 
+//GO(ldap_int_thread_pool_shutdown, 
+//GO(ldap_int_thread_pool_startup, 
+//GO(ldap_int_timeval_dup, 
+//GO(ldap_int_tls_config, 
+//GO(ldap_int_tls_destroy, 
+//DATA(ldap_int_tls_impl, 
+//GO(ldap_int_tls_start, 
+//GO(ldap_int_utils_init, 
+//GO(ldap_is_ldapi_url, 
+//GO(ldap_is_ldaps_url, 
+//GO(ldap_is_ldap_url, 
+//GO(ldap_is_read_ready, 
+//GO(ldap_is_write_ready, 
+//GO(ldap_ld_free, 
+//GO(ldap_log_printf, 
+//GO(ldap_mark_select_clear, 
+//GO(ldap_mark_select_read, 
+//GO(ldap_mark_select_write, 
+//GO(ldap_matchingrule2bv, 
+//GO(ldap_matchingrule2name, 
+//GO(ldap_matchingrule2str, 
+//GO(ldap_matchingrule_free, 
+//GO(ldap_matchingruleuse2bv, 
+//GO(ldap_matchingruleuse2name, 
+//GO(ldap_matchingruleuse2str, 
+//GO(ldap_matchingruleuse_free, 
+GO(ldap_memalloc, pFL)
+GO(ldap_memcalloc, pFLL)
+GO(ldap_memfree, vFp)
+GO(ldap_memrealloc, pFpL)
+GO(ldap_memvfree, vFp)
+//GO(ldap_modify, 
+GO(ldap_modify_ext, iFpppppp)
+GO(ldap_modify_ext_s, iFppppp)
+//GO(ldap_modify_s, 
+//GO(ldap_modrdn, 
+//GO(ldap_modrdn2, 
+//GO(ldap_modrdn2_s, 
+//GO(ldap_modrdn_s, 
+GO(ldap_mods_free, vFpp)
+//GO(ldap_msgdelete, 
+GO(ldap_msgfree, iFp)
+GO(ldap_msgid, iFp)
+GO(ldap_msgtype, iFp)
+//GO(ldap_nameform2bv, 
+//GO(ldap_nameform2name, 
+//GO(ldap_nameform2str, 
+//GO(ldap_nameform_free, 
+//GO(ldap_new_connection, 
+//GO(ldap_new_select_info, 
+GO(ldap_next_attribute, pFppp)
+GO(ldap_next_entry, pFpp)
+//GO(ldap_next_message, 
+GO(ldap_next_reference, pFpp)
+//GO(ldap_ntlm_bind, 
+//GO(ldap_objectclass2bv, 
+//GO(ldap_objectclass2name, 
+//GO(ldap_objectclass2str, 
+//GO(ldap_objectclass_free, 
+GO(ldap_open, pFpi)
+//GO(ldap_open_defconn, 
+//GO(ldap_open_internal_connection, 
+//GO(ldap_parse_deref_control, 
+//GO(ldap_parse_derefresponse_control, 
+GO(ldap_parse_extended_result, iFppppi)
+//GO(ldap_parse_intermediate, 
+//GO(ldap_parse_ntlm_bind_result, 
+//GO(ldap_parse_page_control, 
+//GO(ldap_parse_pageresponse_control, 
+//GO(ldap_parse_passwd, 
+//GO(ldap_parse_passwordpolicy_control, 
+GO(ldap_parse_reference, iFppppi)
+//GO(ldap_parse_refresh, 
+GO(ldap_parse_result, iFpppppppi)
+GO(ldap_parse_sasl_bind_result, iFpppi)
+//GO(ldap_parse_session_tracking_control, 
+GO(ldap_parse_sortresponse_control, iFpppp)
+GO(ldap_parse_vlvresponse_control, iFpppppp)
+//GO(ldap_parse_whoami, 
+//GO(ldap_passwd, 
+//GO(ldap_passwd_s, 
+//GO(ldap_passwordpolicy_err2txt, 
+//GO(ldap_perror, 
+//GO(ldap_put_vrFilter, 
+//GO(ldap_pvt_bv2scope, 
+//GO(ldap_pvt_csnstr, 
+//GO(ldap_pvt_ctime, 
+//GO(ldap_pvt_discard, 
+//GO(ldap_pvt_filter_value_unescape, 
+//GO(ldap_pvt_find_wildcard, 
+//GO(ldap_pvt_get_controls, 
+//GO(ldap_pvt_get_fqdn, 
+//GO(ldap_pvt_get_hname, 
+//GO(ldap_pvt_gethostbyaddr_a, 
+//GO(ldap_pvt_gethostbyname_a, 
+//GO(ldap_pvt_gettime, 
+//GO(ldap_pvt_hex_unescape, 
+//GO(ldap_pvt_put_control, 
+//GO(ldap_pvt_put_filter, 
+//GO(ldap_pvt_runqueue_find, 
+//GO(ldap_pvt_runqueue_insert, 
+//GO(ldap_pvt_runqueue_isrunning, 
+//GO(ldap_pvt_runqueue_next_sched, 
+//GO(ldap_pvt_runqueue_persistent_backload, 
+//GO(ldap_pvt_runqueue_remove, 
+//GO(ldap_pvt_runqueue_resched, 
+//GO(ldap_pvt_runqueue_runtask, 
+//GO(ldap_pvt_runqueue_stoptask, 
+//GO(ldap_pvt_sasl_generic_install, 
+//GO(ldap_pvt_sasl_generic_remove, 
+//GO(ldap_pvt_sasl_getmechs, 
+//GO(ldap_pvt_sasl_install, 
+//GO(ldap_pvt_sasl_mutex_dispose, 
+//GO(ldap_pvt_sasl_mutex_lock, 
+//GO(ldap_pvt_sasl_mutex_new, 
+//GO(ldap_pvt_sasl_mutex_unlock, 
+//GO(ldap_pvt_sasl_remove, 
+//GO(ldap_pvt_sasl_secprops, 
+//GO(ldap_pvt_sasl_secprops_unparse, 
+//GO(ldap_pvt_scope2bv, 
+//GO(ldap_pvt_scope2str, 
+//GO(ldap_pvt_search, 
+//GO(ldap_pvt_search_s, 
+//DATA(ldap_pvt_sockbuf_io_sasl_generic, 
+//GO(ldap_pvt_str2lower, 
+//GO(ldap_pvt_str2lowerbv, 
+//GO(ldap_pvt_str2scope, 
+//GO(ldap_pvt_str2upper, 
+//GO(ldap_pvt_str2upperbv, 
+//GO(ldap_pvt_strtok, 
+//GO(ldap_pvt_thread_cond_broadcast, 
+//GO(ldap_pvt_thread_cond_destroy, 
+//GO(ldap_pvt_thread_cond_init, 
+//GO(ldap_pvt_thread_cond_signal, 
+//GO(ldap_pvt_thread_cond_wait, 
+//GO(ldap_pvt_thread_create, 
+//GO(ldap_pvt_thread_destroy, 
+//GO(ldap_pvt_thread_exit, 
+//GO(ldap_pvt_thread_get_concurrency, 
+//GO(ldap_pvt_thread_initialize, 
+//GO(ldap_pvt_thread_join, 
+//GO(ldap_pvt_thread_key_create, 
+//GO(ldap_pvt_thread_key_destroy, 
+//GO(ldap_pvt_thread_key_getdata, 
+//GO(ldap_pvt_thread_key_setdata, 
+//GO(ldap_pvt_thread_kill, 
+//GO(ldap_pvt_thread_mutex_destroy, 
+//GO(ldap_pvt_thread_mutex_init, 
+//GO(ldap_pvt_thread_mutex_lock, 
+//GO(ldap_pvt_thread_mutex_trylock, 
+//GO(ldap_pvt_thread_mutex_unlock, 
+//GO(ldap_pvt_thread_pool_backload, 
+//GO(ldap_pvt_thread_pool_context, 
+//GO(ldap_pvt_thread_pool_context_reset, 
+//GO(ldap_pvt_thread_pool_destroy, 
+//GO(ldap_pvt_thread_pool_getkey, 
+//GO(ldap_pvt_thread_pool_idle, 
+//GO(ldap_pvt_thread_pool_init, 
+//GO(ldap_pvt_thread_pool_maxthreads, 
+//GO(ldap_pvt_thread_pool_pause, 
+//GO(ldap_pvt_thread_pool_pausecheck, 
+//GO(ldap_pvt_thread_pool_pausing, 
+//GO(ldap_pvt_thread_pool_purgekey, 
+//GO(ldap_pvt_thread_pool_query, 
+//GO(ldap_pvt_thread_pool_resume, 
+//GO(ldap_pvt_thread_pool_retract, 
+//GO(ldap_pvt_thread_pool_setkey, 
+//GO(ldap_pvt_thread_pool_submit, 
+//GO(ldap_pvt_thread_pool_tid, 
+//GO(ldap_pvt_thread_pool_unidle, 
+//GO(ldap_pvt_thread_rdwr_destroy, 
+//GO(ldap_pvt_thread_rdwr_init, 
+//GO(ldap_pvt_thread_rdwr_rlock, 
+//GO(ldap_pvt_thread_rdwr_rtrylock, 
+//GO(ldap_pvt_thread_rdwr_runlock, 
+//GO(ldap_pvt_thread_rdwr_wlock, 
+//GO(ldap_pvt_thread_rdwr_wtrylock, 
+//GO(ldap_pvt_thread_rdwr_wunlock, 
+//GO(ldap_pvt_thread_rmutex_destroy, 
+//GO(ldap_pvt_thread_rmutex_init, 
+//GO(ldap_pvt_thread_rmutex_lock, 
+//GO(ldap_pvt_thread_rmutex_trylock, 
+//GO(ldap_pvt_thread_rmutex_unlock, 
+//GO(ldap_pvt_thread_self, 
+//GO(ldap_pvt_thread_set_concurrency, 
+//GO(ldap_pvt_thread_sleep, 
+//GO(ldap_pvt_thread_yield, 
+//GO(ldap_pvt_tls_accept, 
+//GO(ldap_pvt_tls_check_hostname, 
+//GO(ldap_pvt_tls_ctx_free, 
+//GO(ldap_pvt_tls_destroy, 
+//GO(ldap_pvt_tls_get_my_dn, 
+//GO(ldap_pvt_tls_get_option, 
+//GO(ldap_pvt_tls_get_peer_dn, 
+//GO(ldap_pvt_tls_get_strength, 
+//GO(ldap_pvt_tls_init, 
+//GO(ldap_pvt_tls_init_def_ctx, 
+//GO(ldap_pvt_tls_inplace, 
+//GO(ldap_pvt_tls_sb_ctx, 
+//GO(ldap_pvt_tls_set_option, 
+//GO(ldap_pvt_url_scheme2proto, 
+//GO(ldap_pvt_url_scheme2tls, 
+//GO(ldap_pvt_url_scheme_port, 
+//GO(ldap_rdn2bv, 
+//GO(ldap_rdn2bv_x, 
+//GO(ldap_rdn2str, 
+//GO(ldap_rdnfree, 
+//GO(ldap_rdnfree_x, 
+//GO(ldap_refresh, 
+//GO(ldap_refresh_s, 
+GO(ldap_rename, iFppppippp)
+//GO(ldap_rename2, 
+//GO(ldap_rename2_s, 
+GO(ldap_rename_s, iFppppipp)
+GO(ldap_result, iFppipp)
+//GO(ldap_result2error, 
+//GO(ldap_return_request, 
+GO(ldap_sasl_bind, iFppppppp)
+GO(ldap_sasl_bind_s, iFppppppp)
+//GO(ldap_sasl_interactive_bind, 
+GOM(ldap_sasl_interactive_bind_s, iFEpppppupp)
+//GO(ldap_scherr2str, 
+//GO(ldap_search, 
+GO(ldap_search_ext, iFppippipppip)
+GO(ldap_search_ext_s, iFppippipppip)
+//GO(ldap_search_s, 
+//GO(ldap_search_st, 
+//GO(ldap_send_initial_request, 
+//GO(ldap_send_server_request, 
+//GO(ldap_send_unbind, 
+//GO(ldap_set_ber_options, 
+//GO(ldap_set_nextref_proc, 
+GO(ldap_set_option, iFpip)
+//GOM(ldap_set_rebind_proc, iFEpBp)
+//GO(ldap_set_urllist_proc, 
+GO(ldap_simple_bind, iFppp)
+GO(ldap_simple_bind_s, iFppp)
+//GO(ldap_sort_entries, 
+//GO(ldap_sort_strcasecmp, 
+//GO(ldap_sort_values, 
+GO(ldap_start_tls, iFp)
+GO(ldap_start_tls_s, iFppp)
+//GO(ldap_str2attributetype, 
+//GO(ldap_str2charray, 
+//GO(ldap_str2contentrule, 
+GO(ldap_str2dn, iFppu)
+//GO(ldap_str2matchingrule, 
+//GO(ldap_str2matchingruleuse, 
+//GO(ldap_str2nameform, 
+//GO(ldap_str2objectclass, 
+//GO(ldap_str2rdn, 
+//GO(ldap_str2structurerule, 
+//GO(ldap_str2syntax, 
+GO(ldap_strdup, pFp)
+//GO(ldap_structurerule2bv, 
+//GO(ldap_structurerule2name, 
+//GO(ldap_structurerule2str, 
+//GO(ldap_structurerule_free, 
+//GO(ldap_sync_destroy, 
+//GO(ldap_sync_init, 
+//GO(ldap_sync_initialize, 
+//GO(ldap_sync_init_refresh_and_persist, 
+//GO(ldap_sync_init_refresh_only, 
+//GO(ldap_sync_poll, 
+//GO(ldap_syntax2bv, 
+//GO(ldap_syntax2name, 
+//GO(ldap_syntax2str, 
+//GO(ldap_syntax_free, 
+GO(ldap_tls_inplace, iFp)
+//GO(ldap_turn, 
+//GO(ldap_turn_s, 
+//GO(ldap_ucs_to_utf8s, 
+GO(ldap_unbind, iFp)
+GO(ldap_unbind_ext, iFppp)
+GO(ldap_unbind_ext_s, iFppp)
+GO(ldap_unbind_s, iFp)
+//GO(ldap_url_desc2str, 
+//GO(ldap_url_dup, 
+//GO(ldap_url_duplist, 
+//GO(ldap_url_list2hosts, 
+//GO(ldap_url_list2urls, 
+//GO(ldap_url_parse, 
+//GO(ldap_url_parse_ext, 
+//GO(ldap_url_parsehosts, 
+//GO(ldap_url_parselist, 
+//GO(ldap_url_parselist_ext, 
+//GO(ldap_utf8_bytes, 
+//GO(ldap_utf8_charlen, 
+//GO(ldap_utf8_charlen2, 
+//GO(ldap_utf8_chars, 
+//GO(ldap_utf8_copy, 
+//GO(ldap_utf8_isalnum, 
+//GO(ldap_utf8_isalpha, 
+//GO(ldap_utf8_isascii, 
+//GO(ldap_utf8_isdigit, 
+//GO(ldap_utf8_islower, 
+//GO(ldap_utf8_isspace, 
+//GO(ldap_utf8_isupper, 
+//GO(ldap_utf8_isxdigit, 
+//GO(ldap_utf8_next, 
+//GO(ldap_utf8_offset, 
+//GO(ldap_utf8_prev, 
+//GO(ldap_utf8_strchr, 
+//GO(ldap_utf8_strcspn, 
+//GO(ldap_utf8_strpbrk, 
+//GO(ldap_utf8_strspn, 
+//GO(ldap_utf8_strtok, 
+//GO(ldap_value_dup, 
+GO(ldap_value_free, vFp)
+GO(ldap_value_free_len, vFp)
+//GO(ldap_whoami, 
+//GO(ldap_whoami_s, 
+//GO(ldap_X509dn2bv, 
+//GO(ldap_x_mbs_to_utf8s, 
+//GO(ldap_x_mb_to_utf8, 
+//GO(ldap_x_ucs4_to_utf8, 
+//GO(ldap_x_utf8s_to_mbs, 
+//GO(ldap_x_utf8s_to_wcs, 
+//GO(ldap_x_utf8_to_mb, 
+//GO(ldap_x_utf8_to_ucs4, 
+//GO(ldap_x_utf8_to_wc, 
+//GO(ldap_x_wcs_to_utf8s, 
+//GO(ldap_x_wc_to_utf8, 
+//GO(ldif_close, 
+//GO(ldif_countlines, 
+//DATAB(ldif_debug, 
+//GO(ldif_fetch_url, 
+//GO(ldif_getline, 
+//GO(ldif_is_not_printable, 
+//GO(ldif_must_b64_encode_register, 
+//GO(ldif_must_b64_encode_release, 
+//GO(ldif_open, 
+//GO(ldif_open_url, 
+//GO(ldif_parse_line, 
+//GO(ldif_parse_line2, 
+//GO(ldif_put, 
+//GO(ldif_put_wrap, 
+//GO(ldif_read_record, 
+//GO(ldif_sput, 
+//GO(ldif_sput_wrap,