============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined wvprintfx() JMP trio_vprintf ?? 66h f Actual src: int wvprintfx(const char* fmt, va_list args) { return trio_vprintf(fmt, args); } Predicted src: static void * get_string(void *data, size_t size, size_t size) { return (size_t)size; } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined soup_request_get_type_once() ;local_10 undefined8 -10 ;local_18 undefined8 -18 ;local_20 undefined8 -20 ;local_28 undefined8 -28 PUSH R12 LEA RDI,[.rodata:s_SoupRequest_0017a106] ;= "SoupRequest" SUB RSP,0x20 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_10+0x28],RAX XOR EAX,EAX CALL .plt:::g_intern_static_string ;undefined g_intern_static_string() SUB RSP,0x8 LEA R9,[soup_request_init] MOV R8D,0x20 PUSH 0x0 MOV EDX,0xc0 MOV RSI,RAX MOV EDI,0x50 LEA RCX,[soup_request_class_intern_init] CALL .plt:::g_type_register_static_simple ;undefined g_type_register_static_sim... MOV ESI,0x10 MOV RDI,RAX MOV R12,RAX CALL .plt:::g_type_add_instance_private ;undefined g_type_add_instance_private() MOV qword ptr [RSP + local_20+0x38],0x0 MOV dword ptr [.bss:SoupRequest_private_offset],EAX ;=?? LEA RAX,[soup_request_initable_interface_init] MOV qword ptr [RSP + local_28+0x38],RAX=>soup_request_initable_interface_init MOV qword ptr [RSP + local_18+0x38],0x0 CALL .plt:::g_initable_get_type ;undefined g_initable_get_type() LEA RDX=>local_28,[RSP + 0x10] MOV RDI,R12 MOV RSI,RAX CALL .plt:::g_type_add_interface_static ;undefined g_type_add_interface_static() POP RAX POP RDX MOV RAX,qword ptr [RSP + local_10+0x28] SUB RAX,qword ptr FS:[0x28] JNZ LAB_0014f153 ADD RSP,0x20 MOV RAX,R12 POP R12 RET LAB_0014f153: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP dword ptr [RAX + RAX*0x1] Actual src: G_DEFINE_TYPE_WITH_CODE (SoupRequest, soup_request, G_TYPE_OBJECT, G_ADD_PRIVATE (SoupRequest) G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, soup_request_initable_interface_init)) Predicted src: G_DEFINE_TYPE_WITH_CODE ( e_source, E_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_OBJECT), G_IMPLEMENT_INTERFACE (G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_INTERFACE (G_TYPE_INTERFACE), G_IMPLEMENT_iface_init)) ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined soap_in_PointerTowsrm__CloseSequenceType() PUSH R14 MOV R14,RDI PUSH R13 MOV R13,RCX XOR ECX,ECX PUSH R12 MOV R12,RDX MOV EDX,0x1 PUSH RBP MOV RBP,RSI SUB RSP,0x8 CALL .plt:::soap_element_begin_in ;undefined soap_element_begin_in() TEST EAX,EAX JNZ LAB_00114403 TEST R12,R12 JZ LAB_00114440 LAB_00114374: CMP word ptr [R14 + 0x1f2f0],0x0 MOV qword ptr [R12],0x0 JNZ LAB_00114391 CMP byte ptr [R14 + 0x1de98],0x23 JNZ LAB_001143e0 LAB_00114391: SUB RSP,0x8 MOV RDX,R12 XOR R9D,R9D MOV R8D,0x10 PUSH 0x0 LEA RSI,[R14 + 0x1de98] MOV ECX,0x39 MOV RDI,R14 CALL .plt:::soap_id_lookup ;undefined soap_id_lookup() CMP word ptr [R14 + 0xc65e],0x0 MOV R12,RAX POP RAX POP RDX JNZ LAB_00114418 LAB_001143c7: ADD RSP,0x8 MOV RAX,R12 POP RBP POP R12 POP R13 POP R14 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_001143e0: MOV RDI,R14 CALL .plt:::soap_revert ;undefined soap_revert() MOV RDX,qword ptr [R12] MOV RCX,R13 MOV RSI,RBP MOV RDI,R14 CALL soap_in_wsrm__CloseSequenceType ;undefined soap_in_wsrm__CloseSequenc... MOV qword ptr [R12],RAX TEST RAX,RAX JNZ LAB_001143c7 LAB_00114403: ADD RSP,0x8 XOR R12D,R12D POP RBP MOV RAX,R12 POP R12 POP R13 POP R14 RET ?? 0Fh ?? 1Fh ?? 00h LAB_00114418: MOV RSI,RBP MOV RDI,R14 CALL .plt:::soap_element_end_in ;undefined soap_element_end_in() TEST EAX,EAX JNZ LAB_00114403 ADD RSP,0x8 MOV RAX,R12 POP RBP POP R12 POP R13 POP R14 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00114440: MOV ESI,0x8 MOV RDI,R14 CALL .plt:::soap_malloc ;undefined soap_malloc() MOV R12,RAX TEST RAX,RAX JNZ LAB_00114374 JMP LAB_00114403 ?? 0Fh Actual src: struct wsrm__CloseSequenceType ** SOAP_FMAC4 soap_in_PointerTowsrm__CloseSequenceType(struct soap *soap, const char *tag, struct wsrm__CloseSequenceType **a, const char *type) { (void)type; /* appease -Wall -Werror */ if (soap_element_begin_in(soap, tag, 1, NULL)) return NULL; if (!a) if (!(a = (struct wsrm__CloseSequenceType **)soap_malloc(soap, sizeof(struct wsrm__CloseSequenceType *)))) return NULL; *a = NULL; if (!soap->null && *soap->href!= '#') { soap_revert(soap); if (!(*a = soap_in_wsrm__CloseSequenceType(soap, tag, *a, type))) return NULL; } else { a = (struct wsrm__CloseSequenceType **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_wsrm__CloseSequenceType, sizeof(struct wsrm__CloseSequenceType), 0, NULL); if (soap->body && soap_element_end_in(soap, tag)) return NULL; } return a; } Predicted src: int SOAP_FMAC4 soap_FMAC4 soap_put_put_put_put_put_out(struct soap *soap, const char *tag, const char *type, const char *type) { if (soap_out_out_out_out(soap, tag? tag : NULL, type)) return soap->error; return soap->error; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined e_attachment_bar_interface_init() LEA RAX,[attachment_bar_get_private] MOV qword ptr [RDI + 0x10],RAX=>attachment_bar_get_private LEA RAX,[attachment_bar_get_store] MOV qword ptr [RDI + 0x18],RAX=>attachment_bar_get_store LEA RAX,[attachment_bar_get_path_at_pos] MOV qword ptr [RDI + 0x20],RAX=>attachment_bar_get_path_at_pos LEA RAX,[attachment_bar_get_selected_paths] MOV qword ptr [RDI + 0x28],RAX=>attachment_bar_get_selected_paths LEA RAX,[attachment_bar_path_is_selected] MOV qword ptr [RDI + 0x30],RAX=>attachment_bar_path_is_selected LEA RAX,[attachment_bar_select_path] MOV qword ptr [RDI + 0x38],RAX=>attachment_bar_select_path LEA RAX,[attachment_bar_unselect_path] MOV qword ptr [RDI + 0x40],RAX=>attachment_bar_unselect_path LEA RAX,[attachment_bar_select_all] MOV qword ptr [RDI + 0x48],RAX=>attachment_bar_select_all LEA RAX,[attachment_bar_unselect_all] MOV qword ptr [RDI + 0x50],RAX=>attachment_bar_unselect_all LEA RAX,[attachment_bar_update_actions] MOV qword ptr [RDI + 0x78],RAX=>attachment_bar_update_actions RET ?? 90h Actual src: static void e_attachment_bar_interface_init (EAttachmentViewInterface *iface) { iface->get_private = attachment_bar_get_private; iface->get_store = attachment_bar_get_store; iface->get_path_at_pos = attachment_bar_get_path_at_pos; iface->get_selected_paths = attachment_bar_get_selected_paths; iface->path_is_selected = attachment_bar_path_is_selected; iface->select_path = attachment_bar_select_path; iface->unselect_path = attachment_bar_unselect_path; iface->select_all = attachment_bar_select_all; iface->unselect_all = attachment_bar_unselect_all; iface->update_actions = attachment_bar_update_actions; } Predicted src: static void gimp_iface_init (GimpIface *iface) { iface->get_type = 1; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 0.0; iface->get_type = 1.0; iface->get_type = 1.0; iface->get_type = 1.0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined siridb_series_update_props() PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI SUB RSP,0x8 CMP byte ptr [RSI + 0xf],0x2 MOV RAX,qword ptr [RSI + 0x30] JZ LAB_0013d6c0 TEST RAX,RAX JZ LAB_0013d6a0 MOV EDX,dword ptr [RSI + 0x24] TEST EDX,EDX JZ LAB_0013d680 LAB_0013d61b: MOV RDX,qword ptr [RBP + 0x40] MOV RDX,qword ptr [RDX + 0x10] LAB_0013d623: MOV qword ptr [RBP + 0x10],RDX TEST RAX,RAX JZ LAB_0013d648 LAB_0013d62c: CMP qword ptr [RAX],0x0 JZ LAB_0013d648 MOV RAX,qword ptr [RAX + 0x10] MOV RAX,qword ptr [RAX] CMP RAX,RDX JC LAB_0013d6e0 NOP word ptr [RAX + RAX*0x1] LAB_0013d648: MOV RDI,RBP CALL SERIES_update_end ;undefined SERIES_update_end() MOV ECX,dword ptr [RBP + 0x20] TEST ECX,ECX JNZ LAB_0013d698 CMP dword ptr [.data:Logger[8]],0x2 JLE LAB_0013d6f0 LAB_0013d664: ADD RSP,0x8 MOV RSI,RBP MOV RDI,R12 POP RBP POP R12 JMP siridb_series_drop ;undefined siridb_series_drop() ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0013d680: MOV qword ptr [RBP + 0x10],-0x1 MOV RDX,-0x1 JMP LAB_0013d62c ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0013d698: ADD RSP,0x8 POP RBP POP R12 RET LAB_0013d6a0: CMP dword ptr [.data:Logger[8]],0x3 JG LAB_0013d664 MOV EDX,dword ptr [RSI + 0x4] MOV RSI,qword ptr [RSI + 0x38] LEA RDI,[.rodata:s_Drop_'%s'_(%u)_since_no_buffer_i_00166038] ;= "Drop '%s' (%u) since no buffer is... CALL log__error ;undefined log__error(undefined param... JMP LAB_0013d664 ?? 66h f ?? 90h LAB_0013d6c0: MOV ESI,dword ptr [RSI + 0x24] MOV RDX,-0x1 TEST ESI,ESI JZ LAB_0013d623 JMP LAB_0013d61b ?? 66h f ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0013d6e0: MOV qword ptr [RBP + 0x10],RAX JMP LAB_0013d648 ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_0013d6f0: MOV EDX,dword ptr [RBP + 0x4] MOV RSI,qword ptr [RBP + 0x38] LEA RDI,[.rodata:s_Drop_'%s'_(%u)_since_no_data_is_f_00166070] ;= "Drop '%s' (%u) since no data is f... XOR EAX,EAX CALL log__warning ;undefined log__warning(undefined par... JMP LAB_0013d664 ?? 66h f Actual src: void siridb_series_update_props(siridb_t * siridb, siridb_series_t * series) { if (series->tp!= TP_STRING && series->buffer == NULL) { log_error( "Drop '%s' (%" PRIu32 ") since no buffer is found for this series", series->name, series->id); siridb_series_drop(siridb, series); } else { SERIES_update_start(series); SERIES_update_end(series); if (!series->length) { log_warning( "Drop '%s' (%" PRIu32 ") since no data is found for this series", series->name, series->id); siridb_series_drop(siridb, series); } } } Predicted src: static void update_update(void *data, void *data) { struct data *data = data; struct data *data = data; struct data *data = data; struct data *data = data; data = data; data = data->data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; data->data = data; }