[BOX32] More X11 wrapping fixes

This commit is contained in:
ptitSeb 2024-10-09 21:03:41 +02:00
parent 05384f581f
commit 656a36061a
8 changed files with 157 additions and 53 deletions

View File

@ -459,6 +459,31 @@ void unconvertXEvent(my_XEvent_t* dst, my_XEvent_32_t* src)
}
}
void convert_XErrorEvent_to_32(void* d, void* s)
{
my_XErrorEvent_t* src = s;
my_XErrorEvent_32_t* dst = d;
dst->type = src->type;
dst->display = to_ptrv(FindDisplay(src->display));
dst->resourceid = to_ulong(src->resourceid);
dst->serial = to_ulong(src->serial);
dst->error_code = src->error_code;
dst->request_code = src->request_code;
dst->minor_code = src->minor_code;
}
void convert_XErrorEvent_to_64(void* d, void* s)
{
my_XErrorEvent_32_t* src = s;
my_XErrorEvent_t* dst = d;
dst->minor_code = src->minor_code;
dst->request_code = src->request_code;
dst->error_code = src->error_code;
dst->serial = from_ulong(src->serial);
dst->resourceid = from_ulong(src->resourceid);
dst->display = getDisplay(from_ptrv(src->display));
dst->type = src->type;
}
#define N_DISPLAY 4
#define N_SCREENS 16
my_XDisplay_t* my32_Displays_64[N_DISPLAY] = {0};

View File

@ -9,10 +9,17 @@
void convertXEvent(my_XEvent_32_t* dst, my_XEvent_t* src);
void unconvertXEvent(my_XEvent_t* dst, my_XEvent_32_t* src);
void* addDisplay(void* d); // Adde new Native Display*, return a 32bits one
void* FindDisplay(void* d); // Find a Native Diplay* and return the 32bits one
void* getDisplay(void* d); // return the Native Display from a 32bits one
void delDisplay(void* d); // removed a 32bits Display and associated ressources
void convert_XErrorEvent_to_32(void* d, void* s);
void convert_XErrorEvent_to_64(void* d, void* s);
// Add a new Native Display*, return a 32bits one
void* addDisplay(void* d);
// Find a Native Diplay* and return the 32bits one
void* FindDisplay(void* d);
// return the Native Display from a 32bits one
void* getDisplay(void* d);
// removed a 32bits Display and associated ressources
void delDisplay(void* d);
void convert_Screen_to_32(void* d, void* s);

View File

@ -99,6 +99,7 @@
#() pFriiiiiiiiilt_ -> pFB
#() vFEv -> vFEv
#() vFEp -> vFEp
#() vFEX -> vFEX
#() vFcc -> vFcc
#() vFww -> vFww
#() vFii -> vFii
@ -589,6 +590,7 @@
#() iFXbiip_i -> iFXBi
#() iFXbLip_L -> iFXBL
#() vFXLbpLiL_ -> vFXLB
#() vFXLrpLiL_ -> vFXLB
#() iFXLbpLiL_ -> iFXLB
#() iFXLbLLii_ -> iFXLB
#() pFXrLiiuL_p -> pFXBp
@ -858,7 +860,7 @@
#() iFuirLL_BLL_ -> iFuiBB
#() iFXLpbLWWWcc_ -> iFXLpB
#() iFXLbLWWWcc_i -> iFXLBi
#() iFXLubiiiiiLi_ -> iFXLuB
#() iFXLuriiiiiLi_ -> iFXLuB
#() vFXLbLLLLLLLLLL_L -> vFXLBL
#() iFXLbLLLLLLLLLL_L -> iFXLBL
#() LFpLpriiiiiiiiilt_ -> LFpLpB
@ -1055,8 +1057,7 @@
#() iFpppbp_bup_ -> iFpppBB
#() LFXLrLiiuL_Lp -> LFXLBLp
#() pFEXLrLiiuL_i -> pFEXLBi
#() iFXbp_iubpLiL_ -> iFXBiuB
#() iFXLiubiiiiiLi_ -> iFXLiuB
#() iFXLiuriiiiiLi_ -> iFXLiuB
#() LFLbp_bL_bp_bL_ -> LFLBBBB
#() vFXLbLLLLLLLLLL_iL -> vFXLBiL
#() iFXiiiBpLiiiLLLii_ -> iFXiiiB
@ -1448,12 +1449,12 @@
#() iFXLpppppppppp -> iFXLpppppppppp
#() pFEXLiiuuLipii -> pFEXLiiuuLipii
#() vFXiLLrLiiuL_Liiiipi -> vFXiLLBLiiiipi
#() iFXLLlliLBL_pBL_BL_Bp_ -> iFXLLlliLBpBBB
#() vFuiiiiiiiiiuup -> vFuiiiiiiiiiuup
#() vFuuuuuuuuuuuuu -> vFuuuuuuuuuuuuu
#() vFuUuuuuuuuuuuu -> vFuUuuuuuuuuuuu
#() vFuffffffffffff -> vFuffffffffffff
#() vFXiLLLiiiiiiuu -> vFXiLLLiiiiiiuu
#() iFEXLLlliLppppp -> iFEXLLlliLppppp
#() iFddddpppddpppp -> iFddddpppddpppp
#() iFXippuuuiipppp -> iFXippuuuiipppp
#() uFippuuuulllipp -> uFippuuuulllipp
@ -1985,6 +1986,8 @@ wrappedlibuuid:
wrappedlibx11:
- vFp:
- XFreeStringList
- vFX:
- XLockDisplay
- iFp:
- XDestroyImage
- XFreeExtensionList
@ -2068,6 +2071,7 @@ wrappedlibx11:
- iFXpiip:
- XInternAtoms
- iFXpiup:
- XmbTextListToTextProperty
- Xutf8TextListToTextProperty
- iFXpppp:
- XQueryExtension
@ -2096,6 +2100,8 @@ wrappedlibx11:
- XCreateImage
- pFXLiiuuLipii:
- XGetSubImage
- iFXLLlliLppppp:
- XGetWindowProperty
- LFXLiiuuuiupLp:
- XCreateWindow
wrappedlibxcomposite:

View File

@ -12,6 +12,7 @@
#endif
typedef void (*vFp_t)(void*);
typedef void (*vFX_t)(void*);
typedef int32_t (*iFp_t)(void*);
typedef int32_t (*iFX_t)(void*);
typedef void* (*pFp_t)(void*);
@ -57,10 +58,12 @@ typedef void (*vFXLpppippp_t)(void*, uintptr_t, void*, void*, void*, int32_t, vo
typedef int32_t (*iFXLppiiiiuu_t)(void*, uintptr_t, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
typedef void* (*pFXpuiipuuii_t)(void*, void*, uint32_t, int32_t, int32_t, void*, uint32_t, uint32_t, int32_t, int32_t);
typedef void* (*pFXLiiuuLipii_t)(void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t, void*, int32_t, int32_t);
typedef int32_t (*iFXLLlliLppppp_t)(void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, uintptr_t, void*, void*, void*, void*, void*);
typedef uintptr_t (*LFXLiiuuuiupLp_t)(void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, int32_t, uint32_t, void*, uintptr_t, void*);
#define SUPER() ADDED_FUNCTIONS() \
GO(XFreeStringList, vFp_t) \
GO(XLockDisplay, vFX_t) \
GO(XDestroyImage, iFp_t) \
GO(XFreeExtensionList, iFp_t) \
GO(XFreeModifiermap, iFp_t) \
@ -111,6 +114,7 @@ typedef uintptr_t (*LFXLiiuuuiupLp_t)(void*, uintptr_t, int32_t, int32_t, uint32
GO(XSendEvent, iFXLilp_t) \
GO(XFreeColors, iFXLpiL_t) \
GO(XInternAtoms, iFXpiip_t) \
GO(XmbTextListToTextProperty, iFXpiup_t) \
GO(Xutf8TextListToTextProperty, iFXpiup_t) \
GO(XQueryExtension, iFXpppp_t) \
GO(XSubImage, pFpiiuu_t) \
@ -127,6 +131,7 @@ typedef uintptr_t (*LFXLiiuuuiupLp_t)(void*, uintptr_t, int32_t, int32_t, uint32
GO(XPutImage, iFXLppiiiiuu_t) \
GO(XCreateImage, pFXpuiipuuii_t) \
GO(XGetSubImage, pFXLiiuuLipii_t) \
GO(XGetWindowProperty, iFXLLlliLppppp_t) \
GO(XCreateWindow, LFXLiiuuuiupLp_t)
#endif // __wrappedlibx11TYPES32_H_

View File

@ -189,6 +189,7 @@ typedef uintptr_t (*LFriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*);
typedef void* (*pFriiiiiiiiilt__t)(struct_iiiiiiiiilt_t*);
typedef void (*vFEv_t)(x64emu_t*);
typedef void (*vFEp_t)(x64emu_t*, void*);
typedef void (*vFEX_t)(x64emu_t*, void*);
typedef void (*vFcc_t)(int8_t, int8_t);
typedef void (*vFww_t)(int16_t, int16_t);
typedef void (*vFii_t)(int32_t, int32_t);
@ -679,6 +680,7 @@ typedef int32_t (*iFbp_bp_p_t)(struct_p_t*, struct_p_t*, void*);
typedef int32_t (*iFXbiip_i_t)(void*, struct_iip_t*, int32_t);
typedef int32_t (*iFXbLip_L_t)(void*, struct_Lip_t*, uintptr_t);
typedef void (*vFXLbpLiL__t)(void*, uintptr_t, struct_pLiL_t*);
typedef void (*vFXLrpLiL__t)(void*, uintptr_t, struct_pLiL_t*);
typedef int32_t (*iFXLbpLiL__t)(void*, uintptr_t, struct_pLiL_t*);
typedef int32_t (*iFXLbLLii__t)(void*, uintptr_t, struct_LLii_t*);
typedef void* (*pFXrLiiuL_p_t)(void*, struct_LiiuL_t*, void*);
@ -948,7 +950,7 @@ typedef int32_t (*iFXLbpLiL_L_t)(void*, uintptr_t, struct_pLiL_t*, uintptr_t);
typedef int32_t (*iFuirLL_BLL__t)(uint32_t, int32_t, struct_LL_t*, struct_LL_t*);
typedef int32_t (*iFXLpbLWWWcc__t)(void*, uintptr_t, void*, struct_LWWWcc_t*);
typedef int32_t (*iFXLbLWWWcc_i_t)(void*, uintptr_t, struct_LWWWcc_t*, int32_t);
typedef int32_t (*iFXLubiiiiiLi__t)(void*, uintptr_t, uint32_t, struct_iiiiiLi_t*);
typedef int32_t (*iFXLuriiiiiLi__t)(void*, uintptr_t, uint32_t, struct_iiiiiLi_t*);
typedef void (*vFXLbLLLLLLLLLL_L_t)(void*, uintptr_t, struct_LLLLLLLLLL_t*, uintptr_t);
typedef int32_t (*iFXLbLLLLLLLLLL_L_t)(void*, uintptr_t, struct_LLLLLLLLLL_t*, uintptr_t);
typedef uintptr_t (*LFpLpriiiiiiiiilt__t)(void*, uintptr_t, void*, struct_iiiiiiiiilt_t*);
@ -1145,8 +1147,7 @@ typedef int32_t (*iFEXbpLiL_pp_t)(x64emu_t*, void*, struct_pLiL_t*, void*, void*
typedef int32_t (*iFpppbp_bup__t)(void*, void*, void*, struct_p_t*, struct_up_t*);
typedef uintptr_t (*LFXLrLiiuL_Lp_t)(void*, uintptr_t, struct_LiiuL_t*, uintptr_t, void*);
typedef void* (*pFEXLrLiiuL_i_t)(x64emu_t*, void*, uintptr_t, struct_LiiuL_t*, int32_t);
typedef int32_t (*iFXbp_iubpLiL__t)(void*, struct_p_t*, int32_t, uint32_t, struct_pLiL_t*);
typedef int32_t (*iFXLiubiiiiiLi__t)(void*, uintptr_t, int32_t, uint32_t, struct_iiiiiLi_t*);
typedef int32_t (*iFXLiuriiiiiLi__t)(void*, uintptr_t, int32_t, uint32_t, struct_iiiiiLi_t*);
typedef uintptr_t (*LFLbp_bL_bp_bL__t)(uintptr_t, struct_p_t*, struct_L_t*, struct_p_t*, struct_L_t*);
typedef void (*vFXLbLLLLLLLLLL_iL_t)(void*, uintptr_t, struct_LLLLLLLLLL_t*, int32_t, uintptr_t);
typedef int32_t (*iFXiiiBpLiiiLLLii__t)(void*, int32_t, int32_t, int32_t, struct_pLiiiLLLii_t*);
@ -1538,12 +1539,12 @@ typedef int32_t (*iFEXLppiiiiuui_t)(x64emu_t*, void*, uintptr_t, void*, void*, i
typedef int32_t (*iFXLpppppppppp_t)(void*, uintptr_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
typedef void* (*pFEXLiiuuLipii_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t, void*, int32_t, int32_t);
typedef void (*vFXiLLrLiiuL_Liiiipi_t)(void*, int32_t, uintptr_t, uintptr_t, struct_LiiuL_t*, uintptr_t, int32_t, int32_t, int32_t, int32_t, void*, int32_t);
typedef int32_t (*iFXLLlliLBL_pBL_BL_Bp__t)(void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, uintptr_t, struct_L_t*, void*, struct_L_t*, struct_L_t*, struct_p_t*);
typedef void (*vFuiiiiiiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
typedef void (*vFuuuuuuuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
typedef void (*vFuUuuuuuuuuuuu_t)(uint32_t, uint64_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
typedef void (*vFuffffffffffff_t)(uint32_t, float, float, float, float, float, float, float, float, float, float, float, float);
typedef void (*vFXiLLLiiiiiiuu_t)(void*, int32_t, uintptr_t, uintptr_t, uintptr_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
typedef int32_t (*iFEXLLlliLppppp_t)(x64emu_t*, void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, uintptr_t, void*, void*, void*, void*, void*);
typedef int32_t (*iFddddpppddpppp_t)(double, double, double, double, void*, void*, void*, double, double, void*, void*, void*, void*);
typedef int32_t (*iFXippuuuiipppp_t)(void*, int32_t, void*, void*, uint32_t, uint32_t, uint32_t, int32_t, int32_t, void*, void*, void*, void*);
typedef uint32_t (*uFippuuuulllipp_t)(int32_t, void*, void*, uint32_t, uint32_t, uint32_t, uint32_t, intptr_t, intptr_t, intptr_t, int32_t, void*, void*);
@ -1673,6 +1674,7 @@ void LFriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { LFriiiiiiiiilt__t fn = (
void pFriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { pFriiiiiiiiilt__t fn = (pFriiiiiiiiilt__t)fcn; struct_iiiiiiiiilt_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL)); }
void vFEv_32(x64emu_t *emu, uintptr_t fcn) { vFEv_t fn = (vFEv_t)fcn; fn(emu); }
void vFEp_32(x64emu_t *emu, uintptr_t fcn) { vFEp_t fn = (vFEp_t)fcn; fn(emu, from_ptriv(R_ESP + 4)); }
void vFEX_32(x64emu_t *emu, uintptr_t fcn) { vFEX_t fn = (vFEX_t)fcn; fn(emu, getDisplay(from_ptriv(R_ESP + 4))); }
void vFcc_32(x64emu_t *emu, uintptr_t fcn) { vFcc_t fn = (vFcc_t)fcn; fn(from_ptri(int8_t, R_ESP + 4), from_ptri(int8_t, R_ESP + 8)); }
void vFww_32(x64emu_t *emu, uintptr_t fcn) { vFww_t fn = (vFww_t)fcn; fn(from_ptri(int16_t, R_ESP + 4), from_ptri(int16_t, R_ESP + 8)); }
void vFii_32(x64emu_t *emu, uintptr_t fcn) { vFii_t fn = (vFii_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); }
@ -2163,6 +2165,7 @@ void iFbp_bp_p_32(x64emu_t *emu, uintptr_t fcn) { iFbp_bp_p_t fn = (iFbp_bp_p_t)
void iFXbiip_i_32(x64emu_t *emu, uintptr_t fcn) { iFXbiip_i_t fn = (iFXbiip_i_t)fcn; struct_iip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_iip(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_iip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
void iFXbLip_L_32(x64emu_t *emu, uintptr_t fcn) { iFXbLip_L_t fn = (iFXbLip_L_t)fcn; struct_Lip_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_Lip(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 12))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_Lip(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
void vFXLbpLiL__32(x64emu_t *emu, uintptr_t fcn) { vFXLbpLiL__t fn = (vFXLbpLiL__t)fcn; struct_pLiL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_pLiL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_pLiL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
void vFXLrpLiL__32(x64emu_t *emu, uintptr_t fcn) { vFXLrpLiL__t fn = (vFXLrpLiL__t)fcn; struct_pLiL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_pLiL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); }
void iFXLbpLiL__32(x64emu_t *emu, uintptr_t fcn) { iFXLbpLiL__t fn = (iFXLbpLiL__t)fcn; struct_pLiL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_pLiL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_pLiL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
void iFXLbLLii__32(x64emu_t *emu, uintptr_t fcn) { iFXLbLLii__t fn = (iFXLbLLii__t)fcn; struct_LLii_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LLii(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLii(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
void pFXrLiiuL_p_32(x64emu_t *emu, uintptr_t fcn) { pFXrLiiuL_p_t fn = (pFXrLiiuL_p_t)fcn; struct_LiiuL_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_LiiuL(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptriv(R_ESP + 12))); }
@ -2432,7 +2435,7 @@ void iFXLbpLiL_L_32(x64emu_t *emu, uintptr_t fcn) { iFXLbpLiL_L_t fn = (iFXLbpLi
void iFuirLL_BLL__32(x64emu_t *emu, uintptr_t fcn) { iFuirLL_BLL__t fn = (iFuirLL_BLL__t)fcn; struct_LL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_LL_t arg_16={0}; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
void iFXLpbLWWWcc__32(x64emu_t *emu, uintptr_t fcn) { iFXLpbLWWWcc__t fn = (iFXLpbLWWWcc__t)fcn; struct_LWWWcc_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_LWWWcc(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
void iFXLbLWWWcc_i_32(x64emu_t *emu, uintptr_t fcn) { iFXLbLWWWcc_i_t fn = (iFXLbLWWWcc_i_t)fcn; struct_LWWWcc_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LWWWcc(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptri(int32_t, R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
void iFXLubiiiiiLi__32(x64emu_t *emu, uintptr_t fcn) { iFXLubiiiiiLi__t fn = (iFXLubiiiiiLi__t)fcn; struct_iiiiiLi_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_iiiiiLi(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(uint32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_iiiiiLi(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
void iFXLuriiiiiLi__32(x64emu_t *emu, uintptr_t fcn) { iFXLuriiiiiLi__t fn = (iFXLuriiiiiLi__t)fcn; struct_iiiiiLi_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_iiiiiLi(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(uint32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); }
void vFXLbLLLLLLLLLL_L_32(x64emu_t *emu, uintptr_t fcn) { vFXLbLLLLLLLLLL_L_t fn = (vFXLbLLLLLLLLLL_L_t)fcn; struct_LLLLLLLLLL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LLLLLLLLLL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 16))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLLLLLLLLL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
void iFXLbLLLLLLLLLL_L_32(x64emu_t *emu, uintptr_t fcn) { iFXLbLLLLLLLLLL_L_t fn = (iFXLbLLLLLLLLLL_L_t)fcn; struct_LLLLLLLLLL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LLLLLLLLLL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 16))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLLLLLLLLL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
void LFpLpriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fcn) { LFpLpriiiiiiiiilt__t fn = (LFpLpriiiiiiiiilt__t)fcn; struct_iiiiiiiiilt_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_iiiiiiiiilt(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL)); }
@ -2629,8 +2632,7 @@ void iFEXbpLiL_pp_32(x64emu_t *emu, uintptr_t fcn) { iFEXbpLiL_pp_t fn = (iFEXbp
void iFpppbp_bup__32(x64emu_t *emu, uintptr_t fcn) { iFpppbp_bup__t fn = (iFpppbp_bup__t)fcn; struct_p_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_p(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); struct_up_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_up(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_up(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
void LFXLrLiiuL_Lp_32(x64emu_t *emu, uintptr_t fcn) { LFXLrLiiuL_Lp_t fn = (LFXLrLiiuL_Lp_t)fcn; struct_LiiuL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LiiuL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20))); }
void pFEXLrLiiuL_i_32(x64emu_t *emu, uintptr_t fcn) { pFEXLrLiiuL_i_t fn = (pFEXLrLiiuL_i_t)fcn; struct_LiiuL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LiiuL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptri(int32_t, R_ESP + 16))); }
void iFXbp_iubpLiL__32(x64emu_t *emu, uintptr_t fcn) { iFXbp_iubpLiL__t fn = (iFXbp_iubpLiL__t)fcn; struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_pLiL_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_pLiL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_pLiL(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
void iFXLiubiiiiiLi__32(x64emu_t *emu, uintptr_t fcn) { iFXLiubiiiiiLi__t fn = (iFXLiubiiiiiLi__t)fcn; struct_iiiiiLi_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_iiiiiLi(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_iiiiiLi(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
void iFXLiuriiiiiLi__32(x64emu_t *emu, uintptr_t fcn) { iFXLiuriiiiiLi__t fn = (iFXLiuriiiiiLi__t)fcn; struct_iiiiiLi_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_iiiiiLi(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); }
void LFLbp_bL_bp_bL__32(x64emu_t *emu, uintptr_t fcn) { LFLbp_bL_bp_bL__t fn = (LFLbp_bL_bp_bL__t)fcn; struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_L_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_p_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_p(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); struct_L_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_L(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = to_ulong(fn(from_ulong(from_ptri(ulong_t, R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
void vFXLbLLLLLLLLLL_iL_32(x64emu_t *emu, uintptr_t fcn) { vFXLbLLLLLLLLLL_iL_t fn = (vFXLbLLLLLLLLLL_iL_t)fcn; struct_LLLLLLLLLL_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_LLLLLLLLLL(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptri(int32_t, R_ESP + 16), from_ulong(from_ptri(ulong_t, R_ESP + 20))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_LLLLLLLLLL(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
void iFXiiiBpLiiiLLLii__32(x64emu_t *emu, uintptr_t fcn) { iFXiiiBpLiiiLLLii__t fn = (iFXiiiBpLiiiLLLii__t)fcn; struct_pLiiiLLLii_t arg_20={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_pLiiiLLLii(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
@ -3022,12 +3024,12 @@ void iFEXLppiiiiuui_32(x64emu_t *emu, uintptr_t fcn) { iFEXLppiiiiuui_t fn = (iF
void iFXLpppppppppp_32(x64emu_t *emu, uintptr_t fcn) { iFXLpppppppppp_t fn = (iFXLpppppppppp_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36), from_ptriv(R_ESP + 40), from_ptriv(R_ESP + 44), from_ptriv(R_ESP + 48)); }
void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLipii_t fn = (pFEXLiiuuLipii_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32), from_ptriv(R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44))); }
void vFXiLLrLiiuL_Liiiipi_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLrLiiuL_Liiiipi_t fn = (vFXiLLrLiiuL_Liiiipi_t)fcn; struct_LiiuL_t arg_20={0}; if (*(ptr_t*)(from_ptr((R_ESP + 20)))) from_struct_LiiuL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 24)), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptriv(R_ESP + 44), from_ptri(int32_t, R_ESP + 48)); }
void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fcn) { iFXLLlliLBL_pBL_BL_Bp__t fn = (iFXLLlliLBL_pBL_BL_Bp__t)fcn; struct_L_t arg_32={0}; struct_L_t arg_40={0}; struct_L_t arg_44={0}; struct_p_t arg_48={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_long(from_ptri(long_t, R_ESP + 16)), from_long(from_ptri(long_t, R_ESP + 20)), from_ptri(int32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), *(ptr_t*)(from_ptr((R_ESP + 32))) ? &arg_32 : NULL, from_ptriv(R_ESP + 36), *(ptr_t*)(from_ptr((R_ESP + 40))) ? &arg_40 : NULL, *(ptr_t*)(from_ptr((R_ESP + 44))) ? &arg_44 : NULL, *(ptr_t*)(from_ptr((R_ESP + 48))) ? &arg_48 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 32)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 32))), &arg_32); if (*(ptr_t*)(from_ptr((R_ESP + 40)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 40))), &arg_40); if (*(ptr_t*)(from_ptr((R_ESP + 44)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 44))), &arg_44); if (*(ptr_t*)(from_ptr((R_ESP + 48)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 48))), &arg_48); }
void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiiuup_t fn = (vFuiiiiiiiiiuup_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptriv(R_ESP + 52)); }
void vFuuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuuu_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptri(uint32_t, R_ESP + 52)); }
void vFuUuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuUuuuuuuuuuuu_t fn = (vFuUuuuuuuuuuuu_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint64_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptri(uint32_t, R_ESP + 52), from_ptri(uint32_t, R_ESP + 56)); }
void vFuffffffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFuffffffffffff_t fn = (vFuffffffffffff_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24), from_ptri(float, R_ESP + 28), from_ptri(float, R_ESP + 32), from_ptri(float, R_ESP + 36), from_ptri(float, R_ESP + 40), from_ptri(float, R_ESP + 44), from_ptri(float, R_ESP + 48), from_ptri(float, R_ESP + 52)); }
void vFXiLLLiiiiiiuu_32(x64emu_t *emu, uintptr_t fcn) { vFXiLLLiiiiiiuu_t fn = (vFXiLLLiiiiiiuu_t)fcn; fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ulong(from_ptri(ulong_t, R_ESP + 20)), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptri(uint32_t, R_ESP + 52)); }
void iFEXLLlliLppppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXLLlliLppppp_t fn = (iFEXLLlliLppppp_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_long(from_ptri(long_t, R_ESP + 16)), from_long(from_ptri(long_t, R_ESP + 20)), from_ptri(int32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36), from_ptriv(R_ESP + 40), from_ptriv(R_ESP + 44), from_ptriv(R_ESP + 48)); }
void iFddddpppddpppp_32(x64emu_t *emu, uintptr_t fcn) { iFddddpppddpppp_t fn = (iFddddpppddpppp_t)fcn; R_EAX = fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20), from_ptri(double, R_ESP + 28), from_ptriv(R_ESP + 36), from_ptriv(R_ESP + 40), from_ptriv(R_ESP + 44), from_ptri(double, R_ESP + 48), from_ptri(double, R_ESP + 56), from_ptriv(R_ESP + 64), from_ptriv(R_ESP + 68), from_ptriv(R_ESP + 72), from_ptriv(R_ESP + 76)); }
void iFXippuuuiipppp_32(x64emu_t *emu, uintptr_t fcn) { iFXippuuuiipppp_t fn = (iFXippuuuiipppp_t)fcn; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptriv(R_ESP + 40), from_ptriv(R_ESP + 44), from_ptriv(R_ESP + 48), from_ptriv(R_ESP + 52)); }
void uFippuuuulllipp_32(x64emu_t *emu, uintptr_t fcn) { uFippuuuulllipp_t fn = (uFippuuuulllipp_t)fcn; R_EAX = (uint32_t)fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_long(from_ptri(long_t, R_ESP + 32)), from_long(from_ptri(long_t, R_ESP + 36)), from_long(from_ptri(long_t, R_ESP + 40)), from_ptri(int32_t, R_ESP + 44), from_ptriv(R_ESP + 48), from_ptriv(R_ESP + 52)); }

View File

@ -140,6 +140,7 @@ void LFriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc);
void pFriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc);
void vFEv_32(x64emu_t *emu, uintptr_t fnc);
void vFEp_32(x64emu_t *emu, uintptr_t fnc);
void vFEX_32(x64emu_t *emu, uintptr_t fnc);
void vFcc_32(x64emu_t *emu, uintptr_t fnc);
void vFww_32(x64emu_t *emu, uintptr_t fnc);
void vFii_32(x64emu_t *emu, uintptr_t fnc);
@ -630,6 +631,7 @@ void iFbp_bp_p_32(x64emu_t *emu, uintptr_t fnc);
void iFXbiip_i_32(x64emu_t *emu, uintptr_t fnc);
void iFXbLip_L_32(x64emu_t *emu, uintptr_t fnc);
void vFXLbpLiL__32(x64emu_t *emu, uintptr_t fnc);
void vFXLrpLiL__32(x64emu_t *emu, uintptr_t fnc);
void iFXLbpLiL__32(x64emu_t *emu, uintptr_t fnc);
void iFXLbLLii__32(x64emu_t *emu, uintptr_t fnc);
void pFXrLiiuL_p_32(x64emu_t *emu, uintptr_t fnc);
@ -899,7 +901,7 @@ void iFXLbpLiL_L_32(x64emu_t *emu, uintptr_t fnc);
void iFuirLL_BLL__32(x64emu_t *emu, uintptr_t fnc);
void iFXLpbLWWWcc__32(x64emu_t *emu, uintptr_t fnc);
void iFXLbLWWWcc_i_32(x64emu_t *emu, uintptr_t fnc);
void iFXLubiiiiiLi__32(x64emu_t *emu, uintptr_t fnc);
void iFXLuriiiiiLi__32(x64emu_t *emu, uintptr_t fnc);
void vFXLbLLLLLLLLLL_L_32(x64emu_t *emu, uintptr_t fnc);
void iFXLbLLLLLLLLLL_L_32(x64emu_t *emu, uintptr_t fnc);
void LFpLpriiiiiiiiilt__32(x64emu_t *emu, uintptr_t fnc);
@ -1096,8 +1098,7 @@ void iFEXbpLiL_pp_32(x64emu_t *emu, uintptr_t fnc);
void iFpppbp_bup__32(x64emu_t *emu, uintptr_t fnc);
void LFXLrLiiuL_Lp_32(x64emu_t *emu, uintptr_t fnc);
void pFEXLrLiiuL_i_32(x64emu_t *emu, uintptr_t fnc);
void iFXbp_iubpLiL__32(x64emu_t *emu, uintptr_t fnc);
void iFXLiubiiiiiLi__32(x64emu_t *emu, uintptr_t fnc);
void iFXLiuriiiiiLi__32(x64emu_t *emu, uintptr_t fnc);
void LFLbp_bL_bp_bL__32(x64emu_t *emu, uintptr_t fnc);
void vFXLbLLLLLLLLLL_iL_32(x64emu_t *emu, uintptr_t fnc);
void iFXiiiBpLiiiLLLii__32(x64emu_t *emu, uintptr_t fnc);
@ -1489,12 +1490,12 @@ void iFEXLppiiiiuui_32(x64emu_t *emu, uintptr_t fnc);
void iFXLpppppppppp_32(x64emu_t *emu, uintptr_t fnc);
void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fnc);
void vFXiLLrLiiuL_Liiiipi_32(x64emu_t *emu, uintptr_t fnc);
void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fnc);
void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc);
void vFuuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
void vFuUuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
void vFuffffffffffff_32(x64emu_t *emu, uintptr_t fnc);
void vFXiLLLiiiiiiuu_32(x64emu_t *emu, uintptr_t fnc);
void iFEXLLlliLppppp_32(x64emu_t *emu, uintptr_t fnc);
void iFddddpppddpppp_32(x64emu_t *emu, uintptr_t fnc);
void iFXippuuuiipppp_32(x64emu_t *emu, uintptr_t fnc);
void uFippuuuulllipp_32(x64emu_t *emu, uintptr_t fnc);

View File

@ -42,7 +42,9 @@ void UnwrapXImage(void* d, void* s);
void WrapXImage(void* d, void* s);
typedef void (*vFp_t)(void*);
typedef int (*iFp_t)(void*);
typedef uint32_t (*uFv_t)(void);
typedef int (*iFpp_t)(void*, void*);
typedef int32_t (*iFpl_t)(void*, intptr_t);
typedef uintptr_t (*LFpii_t)(void*, int32_t, int32_t);
typedef int32_t (*iFpiiL_t)(void*, int32_t, int32_t, uintptr_t);
@ -50,29 +52,12 @@ typedef void* (*pFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t);
#define ADDED_FUNCTIONS() \
GO(XInitThreads, uFv_t) \
GO(XLockDisplay, vFp_t) \
GO(XUnlockDisplay, vFp_t)
#include "generated/wrappedlibx11types32.h"
#include "wrappercallback32.h"
void convert_Screen_to_32(void* d, void* s);
void* FindDisplay(void* d);
void* getDisplay(void* d);
void convert_XErrorEvent_to_32(void* d, void* s)
{
my_XErrorEvent_t* src = s;
my_XErrorEvent_32_t* dst = d;
dst->type = src->type;
dst->display = to_ptrv(FindDisplay(src->display));
dst->resourceid = to_ulong(src->resourceid);
dst->serial = to_ulong(src->serial);
dst->error_code = src->error_code;
dst->request_code = src->request_code;
dst->minor_code = src->minor_code;
}
#define SUPER() \
GO(0) \
GO(1) \
@ -168,7 +153,17 @@ static int my32_error_handler_##A(void* dpy, void* error)
{ \
static my_XErrorEvent_32_t evt = {0}; \
convert_XErrorEvent_to_32(&evt, error); \
return (int)RunFunctionFmt(my32_error_handler_fct_##A, "pp", getDisplay(dpy), &evt); \
return (int)RunFunctionFmt(my32_error_handler_fct_##A, "pp", FindDisplay(dpy), &evt); \
}
SUPER()
#undef GO
#define GO(A) \
static iFpp_t my32_rev_error_handler_fct_##A = NULL; \
static int my32_rev_error_handler_##A(void* dpy, void* error) \
{ \
my_XErrorEvent_t evt = {0}; \
convert_XErrorEvent_to_64(&evt, error); \
return my32_rev_error_handler_fct_##A (getDisplay(dpy), &evt); \
}
SUPER()
#undef GO
@ -185,15 +180,28 @@ static void* finderror_handlerFct(void* fct)
printf_log(LOG_NONE, "Warning, no more slot for libX11 error_handler callback\n");
return NULL;
}
static void* reverse_error_handlerFct(library_t* lib, void* fct)
static void* reverse_error_handler_Fct(library_t* lib, void* fct)
{
//Callsed from x86 world -> native world
if(!fct) return fct;
if(CheckBridged(lib->w.bridge, fct))
return (void*)CheckBridged(lib->w.bridge, fct);
// first check if it's a wrapped function, that could be easy
#define GO(A) if(my32_error_handler_##A == fct) return (void*)my32_error_handler_fct_##A;
SUPER()
#undef GO
return (void*)AddBridge(lib->w.bridge, iFpp_32, fct, 0, NULL);
if(FindElfAddress(my_context, (uintptr_t)fct))
return fct;
// it's a naitve one... so bridge it, but need transform XImage32 to XImage
void* f = NULL;
#define GO(A) if(!f && my32_rev_error_handler_fct_##A == fct) f = (void*)my32_rev_error_handler_##A;
SUPER()
#undef GO
#define GO(A) if(!f && !my32_rev_error_handler_fct_##A) {my32_rev_error_handler_fct_##A = fct; f = my32_rev_error_handler_##A;}
SUPER()
#undef GO
if(f)
return (void*)AddCheckBridge(lib->w.bridge, iFpp_32, f, 0, "X11_error_handler");
printf_log(LOG_NONE, "Warning, no more slot for reverse 32bits libX11 error_handler callback\n");
return fct;
}
// ioerror_handler
@ -201,7 +209,15 @@ static void* reverse_error_handlerFct(library_t* lib, void* fct)
static uintptr_t my32_ioerror_handler_fct_##A = 0; \
static int my32_ioerror_handler_##A(void* dpy) \
{ \
return (int)RunFunctionFmt(my32_ioerror_handler_fct_##A, "p", getDisplay(dpy)); \
return (int)RunFunctionFmt(my32_ioerror_handler_fct_##A, "p", FindDisplay(dpy));\
}
SUPER()
#undef GO
#define GO(A) \
static iFp_t my32_rev_ioerror_handler_fct_##A = NULL; \
static int my32_rev_ioerror_handler_##A(void* dpy) \
{ \
return my32_rev_ioerror_handler_fct_##A (getDisplay(dpy)); \
}
SUPER()
#undef GO
@ -218,16 +234,30 @@ static void* findioerror_handlerFct(void* fct)
printf_log(LOG_NONE, "Warning, no more slot for libX11 ioerror_handler callback\n");
return NULL;
}
static void* reverse_ioerror_handlerFct(library_t* lib, void* fct)
static void* reverse_ioerror_handler_Fct(library_t* lib, void* fct)
{
//Callsed from x86 world -> native world
if(!fct) return fct;
if(CheckBridged(lib->w.bridge, fct))
return (void*)CheckBridged(lib->w.bridge, fct);
// first check if it's a wrapped function, that could be easy
#define GO(A) if(my32_ioerror_handler_##A == fct) return (void*)my32_ioerror_handler_fct_##A;
SUPER()
#undef GO
return (void*)AddBridge(lib->w.bridge, iFp_32, fct, 0, NULL);
if(FindElfAddress(my_context, (uintptr_t)fct))
return fct;
// it's a naitve one... so bridge it, but need transform XImage32 to XImage
void* f = NULL;
#define GO(A) if(!f && my32_rev_ioerror_handler_fct_##A == fct) f = (void*)my32_rev_ioerror_handler_##A;
SUPER()
#undef GO
#define GO(A) if(!f && !my32_rev_ioerror_handler_fct_##A) {my32_rev_ioerror_handler_fct_##A = fct; f = my32_rev_ioerror_handler_##A;}
SUPER()
#undef GO
if(f)
return (void*)AddCheckBridge(lib->w.bridge, iFp_32, f, 0, "X11_ioerror_handler");
printf_log(LOG_NONE, "Warning, no more slot for reverse 32bits libX11 ioerror_handler callback\n");
return fct;
}
#if 0
// exterror_handler
#define GO(A) \
@ -1310,13 +1340,13 @@ EXPORT void* my32_XSetIMValues(x64emu_t* emu, void* xim, ptr_t* va) {
EXPORT void* my32_XSetErrorHandler(x64emu_t* emu, XErrorHandler handler)
{
void* ret = my->XSetErrorHandler(finderror_handlerFct(handler));
return reverse_error_handlerFct(my_lib, ret);
return reverse_error_handler_Fct(my_lib, ret);
}
EXPORT void* my32_XSetIOErrorHandler(x64emu_t* emu, XIOErrorHandler handler)
{
void* ret = my->XSetIOErrorHandler(findioerror_handlerFct(handler));
return reverse_ioerror_handlerFct(my_lib, ret);
return reverse_ioerror_handler_Fct(my_lib, ret);
}
#if 0
@ -2070,6 +2100,34 @@ EXPORT int my32_XChangeWindowAttributes(x64emu_t* emu, void* dpy, XID window, un
return my->XChangeWindowAttributes(dpy, window, mask, attrs_l);
}
EXPORT int my32_XGetWindowProperty(x64emu_t* emu, void* dpy, XID window, XID prop, long offset, long length, int delete, XID req, XID* type_return, int* fmt_return, ulong_t* nitems_return, ulong_t* bytes, ptr_t*prop_return)
{
unsigned long nitems_l = 0, bytes_l = 0;
void* prop_l = NULL;
int ret = my->XGetWindowProperty(dpy, window, prop, offset, length, delete, req, type_return, fmt_return, &nitems_l, &bytes_l, &prop_l);
*nitems_return = to_ulong(nitems_l);
*bytes = to_ulong(bytes_l);
*prop_return = to_ptrv(prop_l);
if(!ret && *fmt_return==32) {
// inplace shrink
unsigned long *src = prop_l;
ulong_t* dst = prop_l;
for(int i=0; i<*nitems_return; ++i)
dst[i] = to_ulong(src[i]);
}
return ret;
}
EXPORT void my32_XLockDisplay(x64emu_t* emu, void* dpy)
{
my->XLockDisplay(dpy);
// update some of the values now that the screen is locked
my_XDisplay_t* src = dpy;
my_XDisplay_32_t* dst = FindDisplay(dpy);
// should do a full sync?
dst->request = src->request;
}
#define CUSTOM_INIT \
AddAutomaticBridge(lib->w.bridge, vFp_32, *(void**)dlsym(lib->w.lib, "_XLockMutex_fn"), 0, "_XLockMutex_fn"); \
AddAutomaticBridge(lib->w.bridge, vFp_32, *(void**)dlsym(lib->w.lib, "_XUnlockMutex_fn"), 0, "_XUnlockMutex_fn"); \

View File

@ -195,7 +195,7 @@ GO(XcmsPrefixOfFormat, pFL)
//GO(_XcmsUnresolveColor,
//GOM(XcmsVisualOfCCC, pFEp)
//GO(_XColor_to_XcmsRGB,
GO(XConfigureWindow, iFXLubiiiiiLi_)
GO(XConfigureWindow, iFXLuriiiiiLi_)
GO(XConnectionNumber, iFX)
//GO(_XConnectXCB,
GO(XContextDependentDrawing, iFp)
@ -413,7 +413,7 @@ GO(XGetTransientForHint, iFXLbL_)
GOM(XGetVisualInfo, pFEXlpp)
//GOM(_XGetWindowAttributes, iFEXLbiiiiiipLiiiiLLiLiilllibpXLiiiiipippLLLiiiil__)
GOM(XGetWindowAttributes, iFEXLp)
GO(XGetWindowProperty, iFXLLlliLBL_pBL_BL_Bp_)
GOM(XGetWindowProperty, iFEXLLlliLppppp)
GO(XGetWMClientMachine, iFXLbpLiL_)
//GO(XGetWMColormapWindows, iFXLbbL__p)
GOM(XGetWMHints, pFEXL)
@ -876,7 +876,7 @@ GO(xlocaledir, vFpi)
GO(XLocaleOfFontSet, pFp)
GO(XLocaleOfIM, pFp)
GO(XLocaleOfOM, pFp)
GO(XLockDisplay, vFX)
GOM(XLockDisplay, vFEX)
//DATAM(_XLockMutex_fn, 4)
GO(XLookupColor, iFXLpBLWWWcc_BLWWWcc_)
//GO(_XLookupKeysym,
@ -913,7 +913,7 @@ GO(XmbResetIC, pFp)
GO(XmbTextEscapement, iFppi)
GO(XmbTextExtents, iFppipp)
//GO(_XmbTextListToTextProperty,
GOM(XmbTextListToTextProperty, iFXEpiup)
GOM(XmbTextListToTextProperty, iFEXpiup)
GO(XmbTextPerCharExtents, iFppippippp)
//GO(_XmbTextPropertyToTextList,
GOM(XmbTextPropertyToTextList, iFEXbpLiL_pp)