============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined LineStyleAlphaModifier_DistanceFromObject_expanded_get() MOV RAX,qword ptr [RDI + 0x10] MOV EAX,dword ptr [RAX + 0x58] SHR EAX,1 AND EAX,0x1 RET ?? 0Fh Actual src: bool LineStyleAlphaModifier_DistanceFromObject_expanded_get(PointerRNA *ptr) { LineStyleAlphaModifier_DistanceFromObject *data = (LineStyleAlphaModifier_DistanceFromObject *)(ptr->data); return (((data->modifier.flags) & 2)!= 0); } Predicted src: static int get_get_get_get(void) { return 0; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined rpmcpioFree() TEST RDI,RDI JZ LAB_00126500 PUSH RBP CMP qword ptr [RDI],0x0 MOV RBP,RDI JZ LAB_001264f4 CALL .plt:rpmcpioClose ;undefined rpmcpioClose() LAB_001264f4: MOV RDI,RBP CALL .plt.got:::free ;void free(void * __ptr) XOR EAX,EAX POP RBP RET LAB_00126500: XOR EAX,EAX RET ?? 66h f Actual src: rpmcpio_t rpmcpioFree(rpmcpio_t cpio) { if (cpio) { if (cpio->fd) (void) rpmcpioClose(cpio); free(cpio); } return NULL; } Predicted src: void _free(void) { if (data == NULL) return; free(data); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined erts_get_schedulers_binds() PUSH R13 MOV ESI,0x7 PUSH R12 MOV R12,RDI LEA RDI,[.rodata:s_unbound_0043355b] ;= "unbound" PUSH RBP PUSH RBX SUB RSP,0x8 CALL am_atom_put ;undefined am_atom_put() CMP qword ptr [R12 + 0x78],0x0 MOV RBP,RAX MOV RAX,qword ptr [ERTS_LOW_WRITE:erts_no_schedulers] LEA RSI,[RAX + 0x1] JZ LAB_003025d4 MOV RAX,qword ptr [R12 + 0x58] MOV RBX,qword ptr [R12 + 0x50] MOV RDX,qword ptr [ERTS_LOW_WRITE:erts_no_schedulers] SUB RAX,0x18 CMP RBX,RAX LEA RSI,[RDX + 0x1] CMOVNC RAX,RBX SUB RAX,RBX SAR RAX,0x3 CMP RAX,RSI JNC LAB_00302660 LAB_003025d4: XOR EDX,EDX MOV RDI,R12 CALL erts_heap_alloc ;undefined erts_heap_alloc() MOV RDX,qword ptr [ERTS_LOW_WRITE:erts_no_schedulers] MOV RBX,RAX LAB_003025e8: SHL RDX,0x6 LEA R13,[.bss:cpuinfo_rwmtx] LEA R12,[RBX + 0x2] MOV qword ptr [RBX],RDX MOV RDI=>.bss:cpuinfo_rwmtx,R13 CALL ethr_rwmutex_rlock ;undefined ethr_rwmutex_rlock() CMP qword ptr [ERTS_LOW_WRITE:erts_no_schedulers],0x0 MOV EAX,0x1 MOV RSI,qword ptr [.bss:scheduler2cpu_map] JZ LAB_00302645 NOP dword ptr [RAX + RAX*0x1] LAB_00302620: MOVSXD RDX,dword ptr [RSI + RAX*0x8 + 0x4] MOV RCX,RBP TEST EDX,EDX JS LAB_00302634 SHL RDX,0x4 LEA RCX,[RDX + 0xf] LAB_00302634: MOV qword ptr [RBX + RAX*0x8],RCX ADD RAX,0x1 CMP qword ptr [ERTS_LOW_WRITE:erts_no_schedulers],RAX JNC LAB_00302620 LAB_00302645: MOV RDI=>.bss:cpuinfo_rwmtx,R13 CALL ethr_rwmutex_runlock ;undefined ethr_rwmutex_runlock() ADD RSP,0x8 MOV RAX,R12 POP RBX POP RBP POP R12 POP R13 RET ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_00302660: LEA RAX,[RBX + RSI*0x8] MOV qword ptr [R12 + 0x50],RAX JMP LAB_003025e8 ?? 66h f Actual src: Eterm erts_get_schedulers_binds(Process *c_p) { int ix; ERTS_DECL_AM(unbound); Eterm *hp = HAlloc(c_p, erts_no_schedulers+1); Eterm res = make_tuple(hp); *(hp++) = make_arityval(erts_no_schedulers); erts_rwmtx_rlock(&cpuinfo_rwmtx); for (ix = 1; ix <= erts_no_schedulers; ix++) *(hp++) = (scheduler2cpu_map[ix].bound_id >= 0 ? make_small(scheduler2cpu_map[ix].bound_id) : AM_unbound); erts_rwmtx_runlock(&cpuinfo_rwmtx); return res; } Predicted src: static void _data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_data_dat ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined hints_grep() PUSH RBP LEA RDX,[.rodata:s_DNS_Hints_0013e54c] ;= "DNS Hints" MOV RBP,RDI MOV ESI,0x1 PUSH RBX SUB RSP,0x8 CALL .plt:luaL_checkudata ;undefined luaL_checkudata() MOV RDI,RBP MOV ESI,0x2 CALL .plt:lua_settop ;undefined lua_settop() MOV RDI,RBP MOV EDX,0x1 MOV ESI,0x10 CALL .plt:lua_newuserdatauv ;undefined lua_newuserdatauv() PXOR XMM0,XMM0 MOV RDI,RBP XOR ECX,ECX MOVUPS xmmword ptr [RAX],XMM0 LEA RDX,[.rodata:DAT_0013f731] ;= 2Eh . MOV ESI,0x2 MOV RBX,RAX CALL .plt:luaL_optlstring ;undefined luaL_optlstring() MOV RDI,RBP MOV EDX,0x3 LEA RSI,[hints_next] MOV qword ptr [RBX],RAX CALL .plt:lua_pushcclosure ;undefined lua_pushcclosure() ADD RSP,0x8 MOV EAX,0x1 POP RBX POP RBP RET ?? 0Fh Actual src: static int hints_grep(lua_State *L) { struct dns_hints_i *i; hints_check(L, 1); lua_settop(L, 2); i = memset(lua_newuserdata(L, sizeof *i), 0, sizeof *i); i->zone = luaL_optstring(L, 2, "."); lua_pushcclosure(L, &hints_next, 3); return 1; } Predicted src: static void _init(void) { int i; int i; i = 0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined igListBoxFnBoolPtr(char * param_1, int * param_2, FuncDef47 * param_3, void * param_4, int param_5, int param_6) ;param_1 char * RDI ;param_2 int * RSI ;param_3 FuncDef47 * RDX ;param_4 void * RCX ;param_5 int R8D ;param_6 int R9D JMP ImGui::ListBox ?? 66h f Actual src: CIMGUI_API bool igListBoxFnBoolPtr(const char* label,int* current_item,bool(*items_getter)(void* data,int idx,const char** out_text),void* data,int items_count,int height_in_items) { return ImGui::ListBox(label,current_item,items_getter,data,items_count,height_in_items); } Predicted src: void _init(const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, const char *name, size_name) { char *name; if (name == NULL) { return NULL; } }