about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorLily <egzozu.be.bas@gmail.com>2024-03-06 18:12:16 +0300
committerGitHub <noreply@github.com>2024-03-06 16:12:16 +0100
commit5c994ff222970bd374e9b9315dae0dccba904f02 (patch)
treee54a25ec7f96f93758a3783b97850ff65458c0fb /src
parent9372b96e472f88634c065674785115c8c52d2f48 (diff)
downloadbox64-5c994ff222970bd374e9b9315dae0dccba904f02.tar.gz
box64-5c994ff222970bd374e9b9315dae0dccba904f02.zip
some gcrypt wrapping (#1338)
* some gcrypt wrapping (needed to check sign)

* little more wrapping in gcrypt

* correcting sign
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt6
-rw-r--r--src/wrapped/generated/wrapper.c18
-rw-r--r--src/wrapped/generated/wrapper.h6
-rw-r--r--src/wrapped/wrappedgcrypt_private.h44
4 files changed, 54 insertions, 20 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 0eb364ad..feee568a 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -238,6 +238,7 @@
 #() uFui
 #() uFuu
 #() uFup
+#() uFuM
 #() uFpw
 #() uFpi
 #() uFpC
@@ -572,6 +573,7 @@
 #() uFiuu
 #() uFilp
 #() uFipu
+#() uFipL
 #() uFuii
 #() uFuip
 #() uFuuu
@@ -598,6 +600,7 @@
 #() uFpLp
 #() uFppi
 #() uFppu
+#() uFppL
 #() uFppp
 #() uFbWW
 #() uFbWu
@@ -791,6 +794,7 @@
 #() vFipii
 #() vFipup
 #() vFipll
+#() vFippL
 #() vFippp
 #() vFCCCC
 #() vFWWWW
@@ -1101,6 +1105,7 @@
 #() uFuuuu
 #() uFpiip
 #() uFpipu
+#() uFpipL
 #() uFpipp
 #() uFpCCC
 #() uFpuip
@@ -1627,6 +1632,7 @@
 #() uFEpppp
 #() uFEpppV
 #() uFiuuuu
+#() uFiuppi
 #() uFipipp
 #() uFipLpp
 #() uFuiiii
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 45de6f2a..573b2a47 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -276,6 +276,7 @@ typedef uint32_t (*uFip_t)(int32_t, void*);
 typedef uint32_t (*uFui_t)(uint32_t, int32_t);
 typedef uint32_t (*uFuu_t)(uint32_t, uint32_t);
 typedef uint32_t (*uFup_t)(uint32_t, void*);
+typedef uint32_t (*uFuM_t)(uint32_t, ...);
 typedef uint32_t (*uFpw_t)(void*, int16_t);
 typedef uint32_t (*uFpi_t)(void*, int32_t);
 typedef uint32_t (*uFpC_t)(void*, uint8_t);
@@ -610,6 +611,7 @@ typedef uint32_t (*uFEpp_t)(x64emu_t*, void*, void*);
 typedef uint32_t (*uFiuu_t)(int32_t, uint32_t, uint32_t);
 typedef uint32_t (*uFilp_t)(int32_t, intptr_t, void*);
 typedef uint32_t (*uFipu_t)(int32_t, void*, uint32_t);
+typedef uint32_t (*uFipL_t)(int32_t, void*, uintptr_t);
 typedef uint32_t (*uFuii_t)(uint32_t, int32_t, int32_t);
 typedef uint32_t (*uFuip_t)(uint32_t, int32_t, void*);
 typedef uint32_t (*uFuuu_t)(uint32_t, uint32_t, uint32_t);
@@ -636,6 +638,7 @@ typedef uint32_t (*uFpLL_t)(void*, uintptr_t, uintptr_t);
 typedef uint32_t (*uFpLp_t)(void*, uintptr_t, void*);
 typedef uint32_t (*uFppi_t)(void*, void*, int32_t);
 typedef uint32_t (*uFppu_t)(void*, void*, uint32_t);
+typedef uint32_t (*uFppL_t)(void*, void*, uintptr_t);
 typedef uint32_t (*uFppp_t)(void*, void*, void*);
 typedef uint32_t (*uFbWW_t)(void*, uint16_t, uint16_t);
 typedef uint32_t (*uFbWu_t)(void*, uint16_t, uint32_t);
@@ -829,6 +832,7 @@ typedef void (*vFiLLL_t)(int32_t, uintptr_t, uintptr_t, uintptr_t);
 typedef void (*vFipii_t)(int32_t, void*, int32_t, int32_t);
 typedef void (*vFipup_t)(int32_t, void*, uint32_t, void*);
 typedef void (*vFipll_t)(int32_t, void*, intptr_t, intptr_t);
+typedef void (*vFippL_t)(int32_t, void*, void*, uintptr_t);
 typedef void (*vFippp_t)(int32_t, void*, void*, void*);
 typedef void (*vFCCCC_t)(uint8_t, uint8_t, uint8_t, uint8_t);
 typedef void (*vFWWWW_t)(uint16_t, uint16_t, uint16_t, uint16_t);
@@ -1139,6 +1143,7 @@ typedef uint32_t (*uFifff_t)(int32_t, float, float, float);
 typedef uint32_t (*uFuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t);
 typedef uint32_t (*uFpiip_t)(void*, int32_t, int32_t, void*);
 typedef uint32_t (*uFpipu_t)(void*, int32_t, void*, uint32_t);
+typedef uint32_t (*uFpipL_t)(void*, int32_t, void*, uintptr_t);
 typedef uint32_t (*uFpipp_t)(void*, int32_t, void*, void*);
 typedef uint32_t (*uFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
 typedef uint32_t (*uFpuip_t)(void*, uint32_t, int32_t, void*);
@@ -1665,6 +1670,7 @@ typedef uint32_t (*uFEppuu_t)(x64emu_t*, void*, void*, uint32_t, uint32_t);
 typedef uint32_t (*uFEpppp_t)(x64emu_t*, void*, void*, void*, void*);
 typedef uint32_t (*uFEpppV_t)(x64emu_t*, void*, void*, void*, void*);
 typedef uint32_t (*uFiuuuu_t)(int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
+typedef uint32_t (*uFiuppi_t)(int32_t, uint32_t, void*, void*, int32_t);
 typedef uint32_t (*uFipipp_t)(int32_t, void*, int32_t, void*, void*);
 typedef uint32_t (*uFipLpp_t)(int32_t, void*, uintptr_t, void*, void*);
 typedef uint32_t (*uFuiiii_t)(uint32_t, int32_t, int32_t, int32_t, int32_t);
@@ -3347,6 +3353,7 @@ void uFip(x64emu_t *emu, uintptr_t fcn) { uFip_t fn = (uFip_t)fcn; R_RAX=(uint32
 void uFui(x64emu_t *emu, uintptr_t fcn) { uFui_t fn = (uFui_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI); }
 void uFuu(x64emu_t *emu, uintptr_t fcn) { uFuu_t fn = (uFuu_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI); }
 void uFup(x64emu_t *emu, uintptr_t fcn) { uFup_t fn = (uFup_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (void*)R_RSI); }
+void uFuM(x64emu_t *emu, uintptr_t fcn) { uFuM_t fn = (uFuM_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void uFpw(x64emu_t *emu, uintptr_t fcn) { uFpw_t fn = (uFpw_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int16_t)R_RSI); }
 void uFpi(x64emu_t *emu, uintptr_t fcn) { uFpi_t fn = (uFpi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI); }
 void uFpC(x64emu_t *emu, uintptr_t fcn) { uFpC_t fn = (uFpC_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint8_t)R_RSI); }
@@ -3681,6 +3688,7 @@ void uFEpp(x64emu_t *emu, uintptr_t fcn) { uFEpp_t fn = (uFEpp_t)fcn; R_RAX=(uin
 void uFiuu(x64emu_t *emu, uintptr_t fcn) { uFiuu_t fn = (uFiuu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); }
 void uFilp(x64emu_t *emu, uintptr_t fcn) { uFilp_t fn = (uFilp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (intptr_t)R_RSI, (void*)R_RDX); }
 void uFipu(x64emu_t *emu, uintptr_t fcn) { uFipu_t fn = (uFipu_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); }
+void uFipL(x64emu_t *emu, uintptr_t fcn) { uFipL_t fn = (uFipL_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
 void uFuii(x64emu_t *emu, uintptr_t fcn) { uFuii_t fn = (uFuii_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); }
 void uFuip(x64emu_t *emu, uintptr_t fcn) { uFuip_t fn = (uFuip_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX); }
 void uFuuu(x64emu_t *emu, uintptr_t fcn) { uFuuu_t fn = (uFuuu_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); }
@@ -3707,6 +3715,7 @@ void uFpLL(x64emu_t *emu, uintptr_t fcn) { uFpLL_t fn = (uFpLL_t)fcn; R_RAX=(uin
 void uFpLp(x64emu_t *emu, uintptr_t fcn) { uFpLp_t fn = (uFpLp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX); }
 void uFppi(x64emu_t *emu, uintptr_t fcn) { uFppi_t fn = (uFppi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void uFppu(x64emu_t *emu, uintptr_t fcn) { uFppu_t fn = (uFppu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); }
+void uFppL(x64emu_t *emu, uintptr_t fcn) { uFppL_t fn = (uFppL_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
 void uFppp(x64emu_t *emu, uintptr_t fcn) { uFppp_t fn = (uFppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void uFbWW(x64emu_t *emu, uintptr_t fcn) { uFbWW_t fn = (uFbWW_t)fcn; void *aligned_xcb = align_xcb_connection((void*)R_RDI); R_RAX=(uint32_t)fn(aligned_xcb, (uint16_t)R_RSI, (uint16_t)R_RDX); unalign_xcb_connection(aligned_xcb, (void*)R_RDI); }
 void uFbWu(x64emu_t *emu, uintptr_t fcn) { uFbWu_t fn = (uFbWu_t)fcn; void *aligned_xcb = align_xcb_connection((void*)R_RDI); R_RAX=(uint32_t)fn(aligned_xcb, (uint16_t)R_RSI, (uint32_t)R_RDX); unalign_xcb_connection(aligned_xcb, (void*)R_RDI); }
@@ -3900,6 +3909,7 @@ void vFiLLL(x64emu_t *emu, uintptr_t fcn) { vFiLLL_t fn = (vFiLLL_t)fcn; fn((int
 void vFipii(x64emu_t *emu, uintptr_t fcn) { vFipii_t fn = (vFipii_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void vFipup(x64emu_t *emu, uintptr_t fcn) { vFipup_t fn = (vFipup_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
 void vFipll(x64emu_t *emu, uintptr_t fcn) { vFipll_t fn = (vFipll_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX); }
+void vFippL(x64emu_t *emu, uintptr_t fcn) { vFippL_t fn = (vFippL_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void vFippp(x64emu_t *emu, uintptr_t fcn) { vFippp_t fn = (vFippp_t)fcn; fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void vFCCCC(x64emu_t *emu, uintptr_t fcn) { vFCCCC_t fn = (vFCCCC_t)fcn; fn((uint8_t)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX); }
 void vFWWWW(x64emu_t *emu, uintptr_t fcn) { vFWWWW_t fn = (vFWWWW_t)fcn; fn((uint16_t)R_RDI, (uint16_t)R_RSI, (uint16_t)R_RDX, (uint16_t)R_RCX); }
@@ -4210,6 +4220,7 @@ void uFifff(x64emu_t *emu, uintptr_t fcn) { uFifff_t fn = (uFifff_t)fcn; R_RAX=(
 void uFuuuu(x64emu_t *emu, uintptr_t fcn) { uFuuuu_t fn = (uFuuuu_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
 void uFpiip(x64emu_t *emu, uintptr_t fcn) { uFpiip_t fn = (uFpiip_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void uFpipu(x64emu_t *emu, uintptr_t fcn) { uFpipu_t fn = (uFpipu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); }
+void uFpipL(x64emu_t *emu, uintptr_t fcn) { uFpipL_t fn = (uFpipL_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void uFpipp(x64emu_t *emu, uintptr_t fcn) { uFpipp_t fn = (uFpipp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void uFpCCC(x64emu_t *emu, uintptr_t fcn) { uFpCCC_t fn = (uFpCCC_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX); }
 void uFpuip(x64emu_t *emu, uintptr_t fcn) { uFpuip_t fn = (uFpuip_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
@@ -4736,6 +4747,7 @@ void uFEppuu(x64emu_t *emu, uintptr_t fcn) { uFEppuu_t fn = (uFEppuu_t)fcn; R_RA
 void uFEpppp(x64emu_t *emu, uintptr_t fcn) { uFEpppp_t fn = (uFEpppp_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void uFEpppV(x64emu_t *emu, uintptr_t fcn) { uFEpppV_t fn = (uFEpppV_t)fcn; R_RAX=(uint32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
 void uFiuuuu(x64emu_t *emu, uintptr_t fcn) { uFiuuuu_t fn = (uFiuuuu_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 uFiuppi(x64emu_t *emu, uintptr_t fcn) { uFiuppi_t fn = (uFiuppi_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void uFipipp(x64emu_t *emu, uintptr_t fcn) { uFipipp_t fn = (uFipipp_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 uFipLpp(x64emu_t *emu, uintptr_t fcn) { uFipLpp_t fn = (uFipLpp_t)fcn; R_RAX=(uint32_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void uFuiiii(x64emu_t *emu, uintptr_t fcn) { uFuiiii_t fn = (uFuiiii_t)fcn; R_RAX=(uint32_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
@@ -6654,6 +6666,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &uFiuu) return 1;
 	if (fun == &uFilp) return 1;
 	if (fun == &uFipu) return 1;
+	if (fun == &uFipL) return 1;
 	if (fun == &uFuii) return 1;
 	if (fun == &uFuip) return 1;
 	if (fun == &uFuuu) return 1;
@@ -6680,6 +6693,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &uFpLp) return 1;
 	if (fun == &uFppi) return 1;
 	if (fun == &uFppu) return 1;
+	if (fun == &uFppL) return 1;
 	if (fun == &uFppp) return 1;
 	if (fun == &UFUii) return 1;
 	if (fun == &UFUUU) return 1;
@@ -6814,6 +6828,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &vFipii) return 1;
 	if (fun == &vFipup) return 1;
 	if (fun == &vFipll) return 1;
+	if (fun == &vFippL) return 1;
 	if (fun == &vFippp) return 1;
 	if (fun == &vFCCCC) return 1;
 	if (fun == &vFWWWW) return 1;
@@ -7086,6 +7101,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &uFuuuu) return 1;
 	if (fun == &uFpiip) return 1;
 	if (fun == &uFpipu) return 1;
+	if (fun == &uFpipL) return 1;
 	if (fun == &uFpipp) return 1;
 	if (fun == &uFpCCC) return 1;
 	if (fun == &uFpuip) return 1;
@@ -7513,6 +7529,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFppppp) return 1;
 	if (fun == &IFppIII) return 1;
 	if (fun == &uFiuuuu) return 1;
+	if (fun == &uFiuppi) return 1;
 	if (fun == &uFipipp) return 1;
 	if (fun == &uFipLpp) return 1;
 	if (fun == &uFuiiii) return 1;
@@ -8244,6 +8261,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &uFpLL) return 1;
 	if (fun == &uFpLp) return 1;
 	if (fun == &uFppu) return 1;
+	if (fun == &uFppL) return 1;
 	if (fun == &uFppp) return 1;
 	if (fun == &UFUUU) return 1;
 	if (fun == &fFfff) return -7;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 4cea6b95..255f6563 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -276,6 +276,7 @@ void uFip(x64emu_t *emu, uintptr_t fnc);
 void uFui(x64emu_t *emu, uintptr_t fnc);
 void uFuu(x64emu_t *emu, uintptr_t fnc);
 void uFup(x64emu_t *emu, uintptr_t fnc);
+void uFuM(x64emu_t *emu, uintptr_t fnc);
 void uFpw(x64emu_t *emu, uintptr_t fnc);
 void uFpi(x64emu_t *emu, uintptr_t fnc);
 void uFpC(x64emu_t *emu, uintptr_t fnc);
@@ -610,6 +611,7 @@ void uFEpp(x64emu_t *emu, uintptr_t fnc);
 void uFiuu(x64emu_t *emu, uintptr_t fnc);
 void uFilp(x64emu_t *emu, uintptr_t fnc);
 void uFipu(x64emu_t *emu, uintptr_t fnc);
+void uFipL(x64emu_t *emu, uintptr_t fnc);
 void uFuii(x64emu_t *emu, uintptr_t fnc);
 void uFuip(x64emu_t *emu, uintptr_t fnc);
 void uFuuu(x64emu_t *emu, uintptr_t fnc);
@@ -636,6 +638,7 @@ void uFpLL(x64emu_t *emu, uintptr_t fnc);
 void uFpLp(x64emu_t *emu, uintptr_t fnc);
 void uFppi(x64emu_t *emu, uintptr_t fnc);
 void uFppu(x64emu_t *emu, uintptr_t fnc);
+void uFppL(x64emu_t *emu, uintptr_t fnc);
 void uFppp(x64emu_t *emu, uintptr_t fnc);
 void uFbWW(x64emu_t *emu, uintptr_t fnc);
 void uFbWu(x64emu_t *emu, uintptr_t fnc);
@@ -829,6 +832,7 @@ void vFiLLL(x64emu_t *emu, uintptr_t fnc);
 void vFipii(x64emu_t *emu, uintptr_t fnc);
 void vFipup(x64emu_t *emu, uintptr_t fnc);
 void vFipll(x64emu_t *emu, uintptr_t fnc);
+void vFippL(x64emu_t *emu, uintptr_t fnc);
 void vFippp(x64emu_t *emu, uintptr_t fnc);
 void vFCCCC(x64emu_t *emu, uintptr_t fnc);
 void vFWWWW(x64emu_t *emu, uintptr_t fnc);
@@ -1139,6 +1143,7 @@ void uFifff(x64emu_t *emu, uintptr_t fnc);
 void uFuuuu(x64emu_t *emu, uintptr_t fnc);
 void uFpiip(x64emu_t *emu, uintptr_t fnc);
 void uFpipu(x64emu_t *emu, uintptr_t fnc);
+void uFpipL(x64emu_t *emu, uintptr_t fnc);
 void uFpipp(x64emu_t *emu, uintptr_t fnc);
 void uFpCCC(x64emu_t *emu, uintptr_t fnc);
 void uFpuip(x64emu_t *emu, uintptr_t fnc);
@@ -1665,6 +1670,7 @@ void uFEppuu(x64emu_t *emu, uintptr_t fnc);
 void uFEpppp(x64emu_t *emu, uintptr_t fnc);
 void uFEpppV(x64emu_t *emu, uintptr_t fnc);
 void uFiuuuu(x64emu_t *emu, uintptr_t fnc);
+void uFiuppi(x64emu_t *emu, uintptr_t fnc);
 void uFipipp(x64emu_t *emu, uintptr_t fnc);
 void uFipLpp(x64emu_t *emu, uintptr_t fnc);
 void uFuiiii(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedgcrypt_private.h b/src/wrapped/wrappedgcrypt_private.h
index 39b2e55e..4aa3dcbd 100644
--- a/src/wrapped/wrappedgcrypt_private.h
+++ b/src/wrapped/wrappedgcrypt_private.h
@@ -24,7 +24,7 @@ GO(gcry_check_version, pFp)
 //GO(gcry_cipher_setctr, 
 //GO(gcry_cipher_setiv, 
 //GO(gcry_cipher_setkey, 
-//GO(gcry_control, 
+GO(gcry_control, uFuM)
 //GO(gcry_create_nonce, 
 //GO(gcry_ctx_release, 
 //GO(gcry_ecc_get_algo_keylen, 
@@ -63,26 +63,30 @@ GO(gcry_check_version, pFp)
 //GO(gcry_malloc, 
 //GO(gcry_malloc_secure, 
 //GO(gcry_md_algo_info, 
-//GO(gcry_md_algo_name, 
-//GO(gcry_md_close, 
-//GO(gcry_md_copy, 
-//GO(gcry_md_ctl, 
-//GO(gcry_md_debug, 
-//GO(gcry_md_enable, 
-//GO(gcry_md_extract, 
-//GO(gcry_md_get_algo, 
-//GO(gcry_md_get_algo_dlen, 
-//GO(gcry_md_hash_buffer, 
-//GO(gcry_md_hash_buffers, 
+GO(gcry_md_algo_name, pFi)
+GO(gcry_md_close, vFp)
+GO(gcry_md_copy, uFpp)
+GO(gcry_md_ctl, pFpipL)
+GO(gcry_md_debug, vFpp)
+GO(gcry_md_enable, uFpi)
+GO(gcry_md_extract, uFpipL)
+GO(gcry_md_get_algo, iFp)
+GO(gcry_md_get_algo_dlen, uFi)
+GO(gcry_md_hash_buffer, vFippL)
+GO(gcry_md_hash_buffers, uFiuppi)
 //GO(gcry_md_info, 
-//GO(gcry_md_is_enabled, 
-//GO(gcry_md_is_secure, 
-//GO(gcry_md_map_name, 
-//GO(gcry_md_open, 
-//GO(gcry_md_read, 
-//GO(gcry_md_reset, 
-//GO(gcry_md_setkey, 
-//GO(gcry_md_write, 
+GO(gcry_md_is_enabled, iFp)
+GO(gcry_md_putc, vFpi)
+GO(gcry_md_final, vFp)
+GO(gcry_md_get_asnoid, uFipL)
+GO(gcry_md_test_algo, uFi)
+GO(gcry_md_is_secure, iFp)
+GO(gcry_md_map_name, iFp)
+GO(gcry_md_open, pFpiu)
+GO(gcry_md_read, CFpi)
+GO(gcry_md_reset, vFp)
+GO(gcry_md_setkey, uFppL)
+GO(gcry_md_write, vFppL)
 //GO(gcry_mpi_abs, 
 //GO(gcry_mpi_add, 
 //GO(gcry_mpi_addm,