============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* RGWGetBucketPolicyStatus_ObjStore_S3::send_response() * ;************************************************************************************************************************************************************ ;undefined send_response(RGWGetBucketPolicyStatus_ObjStore_S3 * this) ;this RGWGetBucke... RDI PUSH RBX MOV ESI,dword ptr [this + 0x70] MOV RBX,this TEST ESI,ESI JNZ LAB_00902160 LAB_0090209f: MOV this,qword ptr [RBX + 0x8] CALL dump_errno ;undefined dump_errno(req_state * par... MOV this,qword ptr [RBX + 0x8] XOR R9D,R9D XOR R8D,R8D MOV RCX,-0x1 LEA RDX,[.rodata:s_application/xml_00be3a9c] ;= "application/xml" MOV RSI,RBX CALL end_header ;undefined end_header(req_state * par... MOV this,qword ptr [RBX + 0x8] CALL dump_start ;undefined dump_start(req_state * par... MOV RAX,qword ptr [RBX + 0x8] LEA RCX,[.rodata:s_http://s3.amazonaws.com/doc/2006_00bba808] ;= "http://s3.amazonaws.com/doc/2006-... MOV ESI,0xc LEA RDX,[.rodata:s_PolicyStatus_00c1d571+12] ;= "PolicyStatus" MOV this,qword ptr [RAX + 0x28] MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x58] MOV RAX,qword ptr [RBX + 0x8] MOVZX ECX,byte ptr [RBX + 0x74] MOV this,qword ptr [RAX + 0x28] MOV R9,qword ptr [this] MOV RAX,qword ptr [R9 + 0x88] CMP RAX,qword ptr [->ceph::Formatter::dump_bool] ;= 004e9af0 JNZ LAB_00902170 TEST CL,CL LEA RAX,[.rodata:s_false_00b9dbb7] ;= "false" LEA R8,[.rodata:DAT_00ba59e0] ;= 74h MOV ESI,0x8 CMOVZ R8,RAX LEA RCX,[.rodata:s_%s_00c380b4+25] ;= "%s" LEA RDX,[.rodata:s_IsPublic_00bfb2e5] ;= "IsPublic" XOR EAX,EAX CALL qword ptr [R9 + 0xb0] LAB_00902141: MOV RAX,qword ptr [RBX + 0x8] MOV this,qword ptr [RAX + 0x28] MOV RAX,qword ptr [this] CALL qword ptr [RAX + 0x60] MOV this,qword ptr [RBX + 0x8] POP RBX MOV RSI,qword ptr [this + 0x28] JMP rgw_flush_formatter_and_reset ;undefined rgw_flush_formatter_and_re... ?? 0Fh ?? 1Fh ?? 00h LAB_00902160: MOV this,qword ptr [this + 0x8] CALL set_req_state_err ;undefined set_req_state_err(req_stat... JMP LAB_0090209f ?? 66h f ?? 90h LAB_00902170: MOV ESI,0x8 LEA RDX,[.rodata:s_IsPublic_00bfb2e5] ;= "IsPublic" CALL RAX JMP LAB_00902141 ;************************************************************************************************************************************************************ ;*boost::date_time::date::TEMPNAMEPLACEHOLDERVALUE(boost::gr...* ;************************************************************************************************************************************************************ ;undefined operator-(date * this, date * param_1) ;this dateformatter->open_object_section_in_ns("PolicyStatus", XMLNS_AWS_S3); // https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETPolicyStatus.html // mentions TRUE and FALSE, but boto/aws official clients seem to want lower // case which is returned by AWS as well; so let's be bug to bug compatible // with the API s->formatter->dump_bool("IsPublic", isPublic); s->formatter->close_section(); rgw_flush_formatter_and_reset(s, s->formatter); } Predicted src: void on_state::start_state() { if (m_state!= NULL) { return; } if (m_state!= NULL) { m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; m_state = m_state->m_state; } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined gth_tag_new_loop() PUSH RBX MOV RBX,RDI MOV EDI,0x18 CALL .plt:::g_malloc0 ;undefined g_malloc0() MOV EDX,dword ptr [RBX] MOV qword ptr [RAX + 0x8],RBX MOV dword ptr [RAX],EDX POP RBX RET ?? 0Fh Actual src: GthTag * gth_tag_new_loop (GthLoop *loop) { GthTag *tag; tag = g_new0 (GthTag, 1); tag->type = loop->type; if (loop->type == GTH_TAG_FOR_EACH_IN_RANGE) tag->value.range_loop = (GthRangeLoop *) loop; else tag->value.loop = loop; return tag; } Predicted src: static void gth_image_new (GthImage *self) { self->priv = g_new0 (GthImage, 1); } ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined vala_ccode_control_flow_module_real_visit_if_statement() TEST RSI,RSI JZ LAB_00171e90 PUSH R13 PUSH R12 MOV R12,RDI PUSH RBP MOV RBP,RSI CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... MOV RDI,RBP MOV R13,RAX CALL .plt:::vala_if_statement_get_condition ;undefined vala_if_statement_get_cond... MOV RDI,RAX CALL .plt:vala_get_cvalue ;undefined vala_get_cvalue() MOV RDI,R13 MOV RSI,RAX CALL .plt:vala_ccode_function_open_if ;undefined vala_ccode_function_open_if() MOV RDI,RBP CALL .plt:::vala_if_statement_get_true_statement ;undefined vala_if_statement_get_true... MOV RSI,R12 MOV RDI,RAX CALL .plt:::vala_code_node_emit ;undefined vala_code_node_emit() MOV RDI,RBP CALL .plt:::vala_if_statement_get_false_statement ;undefined vala_if_statement_get_fals... TEST RAX,RAX JZ LAB_00171e7a MOV RDI,R12 CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... MOV RDI,RAX CALL .plt:vala_ccode_function_add_else ;undefined vala_ccode_function_add_el... MOV RDI,RBP CALL .plt:::vala_if_statement_get_false_statement ;undefined vala_if_statement_get_fals... MOV RSI,R12 MOV RDI,RAX CALL .plt:::vala_code_node_emit ;undefined vala_code_node_emit() LAB_00171e7a: MOV RDI,R12 CALL .plt:vala_ccode_base_module_get_ccode ;undefined vala_ccode_base_module_get... POP RBP POP R12 MOV RDI,RAX POP R13 JMP .plt:vala_ccode_function_close ;undefined vala_ccode_function_close() ?? 90h LAB_00171e90: LEA RDX,[.rodata:s_stmt_!=_NULL_0020d2df+5] ;= "stmt!= NULL" LEA RSI,[.rodata:__func__.0] ;= "vala_ccode_control_flow_module_re... LEA RDI,[.rodata:s_vala-ccodegen_001f501d] ;= "vala-ccodegen" JMP .plt:::g_return_if_fail_warning ;undefined g_return_if_fail_warning() ?? 66h f Actual src: static void vala_ccode_control_flow_module_real_visit_if_statement (ValaCodeVisitor* base, ValaIfStatement* stmt) { ValaCCodeControlFlowModule * self; ValaCCodeFunction* _tmp0_; ValaCCodeFunction* _tmp1_; ValaExpression* _tmp2_; ValaExpression* _tmp3_; ValaCCodeExpression* _tmp4_; ValaBlock* _tmp5_; ValaBlock* _tmp6_; ValaBlock* _tmp7_; ValaBlock* _tmp8_; ValaCCodeFunction* _tmp13_; ValaCCodeFunction* _tmp14_; self = (ValaCCodeControlFlowModule*) base; g_return_if_fail (stmt!= NULL); _tmp0_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp1_ = _tmp0_; _tmp2_ = vala_if_statement_get_condition (stmt); _tmp3_ = _tmp2_; _tmp4_ = vala_get_cvalue (_tmp3_); vala_ccode_function_open_if (_tmp1_, _tmp4_); _tmp5_ = vala_if_statement_get_true_statement (stmt); _tmp6_ = _tmp5_; vala_code_node_emit ((ValaCodeNode*) _tmp6_, (ValaCodeGenerator*) self); _tmp7_ = vala_if_statement_get_false_statement (stmt); _tmp8_ = _tmp7_; if (_tmp8_!= NULL) { ValaCCodeFunction* _tmp9_; ValaCCodeFunction* _tmp10_; ValaBlock* _tmp11_; ValaBlock* _tmp12_; _tmp9_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp10_ = _tmp9_; vala_ccode_function_add_else (_tmp10_); _tmp11_ = vala_if_statement_get_false_statement (stmt); _tmp12_ = _tmp11_; vala_code_node_emit ((ValaCodeNode*) _tmp12_, (ValaCodeGenerator*) self); } _tmp13_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self); _tmp14_ = _tmp13_; vala_ccode_function_close (_tmp14_); } Predicted src: static void vala_base_module_real_real_get_base_base_real_base (ValaOperation* base, * base) { ValaOperation* self; ValaOperation* _tmp0_; ValaOperation* _tmp1_; ValaOperation* _tmp2_; ValaOperation* _tmp3_; ValaOperation* _tmp4_; ValaOperation* _tmp5_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp9_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ValaOperation* _tmp6_; ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined enic_vf_link_update() PUSH RBP LEA RCX,[.rodata:__func__.7] ;= "enic_vf_link_update" PUSH RBX LEA RDX,[.rodata:s_%s_>>_0011fc20] ;= "%s >>\n" MOV RBX,RDI MOV EDI,0x8 PUSH RAX LEA RAX,[.bss:enic_pmd_logtype] ;=?? MOV ESI,dword ptr [RAX]=>.bss:enic_pmd_logtype ;=?? XOR EAX,EAX CALL .plt:::rte_log ;undefined rte_log() MOV RAX,qword ptr [RBX + 0x38] MOV RAX,qword ptr [RAX + 0x60] MOV RBP,qword ptr [RAX + 0x6b8] MOV RDI,qword ptr [RBP + 0x88] CALL enic_link_update ;undefined enic_link_update() MOV RAX,qword ptr [RBP + 0x88] MOV RAX,qword ptr [RAX + 0x38] MOV RAX,qword ptr [RAX + 0x68] MOV RDX,qword ptr [RBX + 0x38] XCHG qword ptr [RDX + 0x68],RAX XOR EAX,EAX POP RDX POP RBX POP RBP RET ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined enic_vf_representor_init() ;local_40 undefined8 -40 PUSH R15 Actual src: static int enic_vf_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete __rte_unused) { struct enic_vf_representor *vf; struct rte_eth_link link; struct enic *pf; ENICPMD_FUNC_TRACE(); vf = eth_dev->data->dev_private; pf = vf->pf; /* * Link status and speed are same as PF. Update PF status and then * copy it to VF. */ enic_link_update(pf->rte_dev); rte_eth_linkstatus_get(pf->rte_dev, &link); rte_eth_linkstatus_set(eth_dev, &link); return 0; } Predicted src: static int link_link_link_update(struct rte_eth_dev *dev) { struct rte_eth_dev *dev = dev->dev->dev; struct rte_eth_dev *dev = dev->dev->dev; struct rte_eth_dev *dev = dev->dev; struct rte_eth_dev *dev = dev->dev->dev; struct rte_eth_dev *dev = dev->dev; dev->dev = dev->dev; dev->dev = dev->dev; dev->dev = dev->dev; dev->dev = dev->dev; dev->dev = dev->dev; return 0; } ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* simple_output::simple_comment(char const*) * ;************************************************************************************************************************************************************ ;undefined simple_comment(simple_output * this, char * param_1) ;this simple_outp... RDI ;param_1 char * RSI PUSH R12 MOV R12,this PUSH RBP MOV RBP,param_1 SUB RSP,0x8 CALL simple_output::flush_last_word ;undefined flush_last_word(simple_out... MOV EAX,dword ptr [R12 + 0xc] TEST EAX,EAX JNZ LAB_00118dd0 LAB_00118d7b: MOV RCX,qword ptr [R12] MOV EDX,0x5 MOV param_1,0x1 LEA this,[.rodata:s__0012b088] ;= " -->\n" CALL .plt:::fwrite ;size_t fwrite(void * __ptr, size_t _... MOV RAX,R12 MOV dword ptr [R12 + 0xc],0x0 ADD RSP,0x8 POP RBP POP R12 RET ?? 90h LAB_00118dd0: MOV param_1,qword ptr [R12] MOV this,0xa CALL .plt:::putc ;int putc(int __c, FILE * __stream) JMP LAB_00118d7b ;************************************************************************************************************************************************************ ;* simple_output::begin_comment(char const*) * ;************************************************************************************************************************************************************ ;undefined begin_comment(simple_output * this, char * param_1) ;this simple_outp... RDI ;param_1 char * RSI PUSH R13 Actual src: simple_output &simple_output::simple_comment(const char *s) { flush_last_word(); if (col!= 0) PUTC('\n', fp); FPUTS("\n", fp); col = 0; return *this; } Predicted src: void output_output::output_output (FILE *fp) { fprintf (fp, "\n"); fprintf (fp, "\n"); fprintf (fp, "\n"); fprintf (fp, "\n"); fprintf (fp, "\n"); fprintf (fp, "\n"); fprintf (fp, "\n"); fprintf (fp, "\n"); }