============================== Sample 1 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined fmpz_mod_polyu3_degrees() MOV R9,RDX MOV RDX,qword ptr [RCX + 0x10] MOV R10,RDI MOV R11,RSI TEST RDX,RDX JLE LAB_0055b1f8 MOV RSI,qword ptr [RCX] MOV RAX,qword ptr [RSI] CMP RDX,0x1 JZ LAB_0055b1c9 LEA RCX,[RSI + 0x8] LEA R8,[RSI + RDX*0x8] MOV RSI,0x4000020000100000 LAB_0055b1a0: MOV RDX,RSI SUB RDX,qword ptr [RCX] ADD RCX,0x8 ADD RDX,RAX MOV RAX,RDX AND RAX,RSI MOV RDI,RAX SHR RDI,0x14 SUB RAX,RDI AND RAX,RDX ADD RAX,qword ptr [RCX + -0x8] CMP R8,RCX JNZ LAB_0055b1a0 LAB_0055b1c9: MOV RDX,RAX SHR RDX,0x2a AND EDX,0x1fffff MOV qword ptr [R10],RDX MOV RDX,RAX AND EAX,0x1fffff SHR RDX,0x15 AND EDX,0x1fffff MOV qword ptr [R11],RDX MOV qword ptr [R9],RAX RET ?? 66h f ?? 0Fh ?? 1Fh ?? 44h D ?? 00h ?? 00h LAB_0055b1f8: MOV qword ptr [R9],-0x1 MOV qword ptr [RSI],-0x1 MOV qword ptr [RDI],-0x1 RET ?? 66h f Actual src: void fmpz_mod_polyu3_degrees( slong * deg0, slong * deg1, slong * deg2, const fmpz_mod_polyu_t A) { slong i; ulong m; ulong mask = mpoly_overflow_mask_sp(FLINT_BITS/3); if (A->length <= 0) { *deg0 = *deg1 = *deg2 = -1; return; } m = A->exps[0]; for (i = 1; i < A->length; i++) m = mpoly_monomial_max1(m, A->exps[i], FLINT_BITS/3, mask); *deg0 = extract_exp(m, 2, 3); *deg1 = extract_exp(m, 1, 3); *deg2 = extract_exp(m, 0, 3); } Predicted src: void fmpz_poly_mod_poly(fmpz_poly_t A, const fmpz_t A, const fmpz_t A, const fmpz_t A, const fmpz_t A, const fmpz_t A, const fmpz_t A, const fmpz_t A) { slong i; for (i = 0; i < A->num; i++) { fmpz_mod_poly_mod_poly_mod(A, A, A, A, A, A, A, A, A); } } ============================== Sample 2 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined f_11826() ;local_30 undefined8 -30 ;local_40 undefined8 -40 ;local_48 undefined8 -48 ;local_50 undefined8 -50 PUSH RBP MOV RBP,RSP PUSH R14 PUSH R13 PUSH R12 MOV R12,RSI PUSH RBX MOV RBX,RDI SUB RSP,0x10 MOV RDX=>EXTERNAL:C_timer_interrupt_counter,qword ptr [->C_timer_interrupt_counter] ;= 001c62a8 ;=?? MOV R14,qword ptr [RSI] MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RBP + local_30+0x8],RAX XOR EAX,EAX MOV R13,qword ptr [RSI + 0x8] MOV RAX,qword ptr [RDX]=>EXTERNAL:C_timer_interrupt_counter ;=?? SUB RAX,0x1 MOV qword ptr [RDX]=>EXTERNAL:C_timer_interrupt_counter,RAX ;=?? TEST RAX,RAX JLE LAB_00149201 LAB_001491a1: MOV RAX,qword ptr [->C_stack_limit] ;= 001c6148 MOV RDX,qword ptr [->C_scratch_usage] ;= 001c6298 MOV RCX,RSP SUB RCX,qword ptr [RAX]=>EXTERNAL:C_stack_limit ;=?? MOV RDX=>EXTERNAL:C_scratch_usage,qword ptr [RDX] ;=?? MOV RAX,RCX XOR ECX,ECX SAR RAX,0x3 CMP RBX,0x2 SETL CL LEA RDX,[RCX + RDX*0x1 + 0x3] CMP RAX,RDX JLE LAB_0014920d SUB RSP,0x20 MOV RDI,qword ptr [R14 + 0x10] MOV RAX,0x300000000000002 LEA RSI=>local_50+0x7,[RSP + 0xf] AND RSI,-0x10 MOV qword ptr [RSI]=>local_50,RAX MOV qword ptr [RSI + local_48+0x50],R13 MOV qword ptr [RSI + local_40+0x50],0xe CALL f_11757 ;undefined f_11757() LAB_00149201: MOV EDI,0xff CALL .plt:::C_raise_interrupt ;undefined C_raise_interrupt() JMP LAB_001491a1 LAB_0014920d: MOV RDX,R12 MOV ESI,EBX LEA RDI,[f_11826] CALL .plt:::C_save_and_reclaim ;undefined C_save_and_reclaim() NOP Actual src: static void C_ccall f_11826(C_word c,C_word *av){ C_word tmp; C_word t0=av[0]; C_word t1=av[1]; C_word t2; C_word *a; C_check_for_interrupt; if(C_unlikely(!C_demand(C_calculate_demand(3,c,1)))){ C_save_and_reclaim((void *)f_11826,c,av);} a=C_alloc(3); t2=((C_word*)t0)[2]; f_11757(t2,C_a_i_list1(&a,1,t1));} Predicted src: static void C_ccall f_1313(C_word c,C_word *av){ C_word tmp; C_word t0=av[0]; C_word t1=av[1]; C_word t2; C_word *a; C_check_for_interrupt; if(C_unlikely(!C_demand(C_calculate_demand(0,c,2)))){ C_save_and_reclaim((void *)f_1313,c,av);} t2=((C_word*)t0)[2];{ C_word *av2=av; av2[0]=t2; ((C_proc)(void*)(*((C_word*)t3+1)))(2,av2);}} ============================== Sample 3 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined _wrap_event_class_create_with_id() ;local_20 undefined8 -20 ;local_30 undefined8 -30 ;local_38 undefined8 -38 ;local_40 undefined8 -40 ;local_48 undefined8 -48 PUSH R12 MOV RDI,RSI MOV ECX,0x2 MOV EDX,0x2 PUSH RBP LEA RSI,[.rodata:s_event_class_create_with_id_0018964f] ;= "event_class_create_with_id" XOR R12D,R12D SUB RSP,0x38 MOV RAX,qword ptr FS:[0x28] MOV qword ptr [RSP + local_20+0x48],RAX XOR EAX,EAX LEA R8=>local_38,[RSP + 0x10] MOV qword ptr [RSP]=>local_48,0x0 CALL SWIG_Python_UnpackTuple ;undefined SWIG_Python_UnpackTuple() TEST RAX,RAX JZ LAB_00147beb MOV RDI,qword ptr [RSP + local_38+0x48] MOV RDX,qword ptr [.bss:swig_types[1072]] MOV RSI,RSP CALL SWIG_Python_ConvertPtrAndOwn.constprop.0 ;undefined SWIG_Python_ConvertPtrAndO... MOV EDI,EAX TEST EAX,EAX JS LAB_00147c38 MOV RDI,qword ptr [RSP + local_30+0x48] LEA RSI=>local_40,[RSP + 0x8] MOV RBP,qword ptr [RSP]=>local_48 CALL SWIG_AsVal_unsigned_SS_long_SS_long ;undefined SWIG_AsVal_unsigned_SS_lon... MOV EDI,EAX TEST EAX,EAX JS LAB_00147c10 MOV RSI=>local_40,qword ptr [RSP + 0x8] MOV RDI,RBP CALL .plt:::bt_event_class_create_with_id ;undefined bt_event_class_create_with... MOV RSI,qword ptr [.bss:swig_types[256]] MOV RDI,RAX CALL SWIG_Python_NewPointerObj.constprop.0 ;undefined SWIG_Python_NewPointerObj.... MOV R12,RAX LAB_00147beb: MOV RAX,qword ptr [RSP + local_20+0x48] SUB RAX,qword ptr FS:[0x28] JNZ LAB_00147c59 ADD RSP,0x38 MOV RAX,R12 POP RBP POP R12 RET ?? 66h f ?? 2Eh . ?? 0Fh ?? 1Fh ?? 84h ?? 00h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00147c10: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'event_class_create_wi_001749a8] ;= "in method 'event_class_create_wit... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:PyErr_SetString ;undefined PyErr_SetString() JMP LAB_00147beb ?? 0Fh ?? 1Fh ?? 80h ?? 00h ?? 00h ?? 00h ?? 00h LAB_00147c38: CMP EAX,-0x1 MOV EAX,0xfffffffb LEA RSI,[.rodata:s_in_method_'event_class_create_wi_00174958] ;= "in method 'event_class_create_wit... CMOVZ EDI,EAX CALL SWIG_Python_ErrorType ;undefined SWIG_Python_ErrorType() MOV RDI,RAX CALL .plt:PyErr_SetString ;undefined PyErr_SetString() JMP LAB_00147beb LAB_00147c59: CALL .plt:::__stack_chk_fail ;undefined __stack_chk_fail() NOP Actual src: SWIGINTERN PyObject *_wrap_event_class_create_with_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; bt_stream_class *arg1 = (bt_stream_class *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; bt_event_class *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "event_class_create_with_id", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_bt_stream_class, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "event_class_create_with_id" "', argument " "1"" of type '" "bt_stream_class *""'"); } arg1 = (bt_stream_class *)(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "event_class_create_with_id" "', argument " "2"" of type '" "uint64_t""'"); } arg2 = (uint64_t)(val2); result = (bt_event_class *)bt_event_class_create_with_id(arg1,arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_bt_event_class, 0 | 0 ); return resultobj; fail: return NULL; } Predicted src: SWIGINTERN PyObject *_wrap_class_t_class_create(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; bt_class_t *arg1 = (bt_class_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; bt_class_t *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_bt_class_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "class_t_class_create" "', argument " "1"" of type '" "bt_class_t *""'"); } arg1 = (bt_class_t *)(argp1); result = (bt_class_t *)bt_class_create_class((bt_class_t const *)arg1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_bt_class_t, 0 | 0 ); return resultobj; fail: return NULL; } ============================== Sample 4 ============================== ASM: ;************************************************************************************************************************************************************ ;* UserSerializer::serialize(GenericIO&, GameLogicState&) * ;************************************************************************************************************************************************************ ;undefined serialize(GenericIO * param_1, GameLogicState * param_2) ;param_1 GenericIO * RDI ;param_2 GameLogicSt... RSI JMP doSerializeGameLogicState ?? 66h f Actual src: USER_SERIALIZER_IMPLEMENTATION_HELPER(GameLogicState) Predicted src: void StateStateStateStateState(StateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStateStat ============================== Sample 5 ============================== ASM: ;************************************************************************************************************************************************************ ;* FUNCTION * ;************************************************************************************************************************************************************ ;undefined nl80211_update_dh_ie() PUSH R15 MOV R15,RCX PUSH R14 MOVZX R14D,DX PUSH R13 MOV R13,RDI PUSH R12 MOV R12,RSI PUSH RBP PUSH RBX MOV RBX,R8 SUB RSP,0x10 MOVZX ECX,byte ptr [RSI + 0x1] MOVZX EDX,byte ptr [RSI] MOV RBP,qword ptr [RDI] PUSH R14 MOV EDI,0x2 MOVZX EAX,byte ptr [RSI + 0x5] PUSH RAX MOVZX EAX,byte ptr [RSI + 0x4] PUSH RAX MOVZX R9D,byte ptr [RSI + 0x3] XOR EAX,EAX MOVZX R8D,byte ptr [RSI + 0x2] LEA RSI,[.rodata:s_nl80211:_Updating_DH_IE_peer:_%0_003a7ab8] ;= "nl80211: Updating DH IE peer: %02... CALL wpa_printf ;undefined wpa_printf(undefined param... MOV ESI,dword ptr [R13 + 0x10] MOV RDI,qword ptr [R13] XOR EDX,EDX ADD RSP,0x20 MOV ECX,0x87 CALL nl80211_ifindex_msg ;undefined nl80211_ifindex_msg() MOV R13,RAX TEST RAX,RAX JZ LAB_002f5ea8 MOV RCX,R12 MOV EDX,0x6 MOV ESI,0x6 MOV RDI,RAX CALL .plt:::nla_put ;undefined nla_put() TEST EAX,EAX JNZ LAB_002f5ea8 MOV EDX,R14D MOV ESI,0x48 MOV RDI,R13 CALL .plt:::nla_put_u16 ;undefined nla_put_u16() TEST EAX,EAX JNZ LAB_002f5ea8 TEST R15,R15 JZ LAB_002f5e45 MOV RCX,R15 MOV EDX,EBX MOV ESI,0x2a MOV RDI,R13 CALL .plt:::nla_put ;undefined nla_put() TEST EAX,EAX JNZ LAB_002f5ea8 LAB_002f5e45: MOV RDI,qword ptr [RBP] SUB RSP,0x8 MOV RDX,R13 XOR R9D,R9D XOR R8D,R8D XOR ECX,ECX MOV RSI,qword ptr [RDI + 0x40] PUSH 0x0 CALL send_and_recv ;undefined send_and_recv(undefined pa... MOV R12D,EAX POP RAX POP RDX TEST R12D,R12D JNZ LAB_002f5e80 LAB_002f5e6d: ADD RSP,0x8 MOV EAX,R12D POP RBX POP RBP POP R12 POP R13 POP R14 POP R15 RET ?? 90h LAB_002f5e80: MOV EDI,R12D NEG EDI CALL .plt:::strerror ;char * strerror(int __errnum) MOV EDX,R12D MOV EDI,0x2 LEA RSI,[.rodata:s_nl80211:_update_dh_ie_failed_err_003a7b00] ;= "nl80211: update_dh_ie failed err=... MOV RCX,RAX XOR EAX,EAX CALL wpa_printf ;undefined wpa_printf(undefined param... JMP LAB_002f5e6d ?? 0Fh ?? 1Fh ?? 00h LAB_002f5ea8: MOV RDI,R13 MOV R12D,0xffffff97 CALL .plt:::nlmsg_free ;undefined nlmsg_free() JMP LAB_002f5e6d ?? 0Fh Actual src: static int nl80211_update_dh_ie(void *priv, const u8 *peer_mac, u16 reason_code, const u8 *ie, size_t ie_len) { int ret; struct nl_msg *msg; struct i802_bss *bss = priv; struct wpa_driver_nl80211_data *drv = bss->drv; wpa_printf(MSG_DEBUG, "nl80211: Updating DH IE peer: " MACSTR " reason %u", MAC2STR(peer_mac), reason_code); if (!(msg = nl80211_bss_msg(bss, 0, NL80211_CMD_UPDATE_OWE_INFO)) || nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, peer_mac) || nla_put_u16(msg, NL80211_ATTR_STATUS_CODE, reason_code) || (ie && nla_put(msg, NL80211_ATTR_IE, ie_len, ie))) { nlmsg_free(msg); return -ENOBUFS; } ret = send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL); if (ret) { wpa_printf(MSG_DEBUG, "nl80211: update_dh_ie failed err=%d (%s)", ret, strerror(-ret)); } return ret; } Predicted src: static int msg_msg(struct msg_msg *msg, struct msg_msg *msg) { struct msg_msg *msg = msg_msg_msg_msg(msg); struct msg_msg *msg = msg_msg_msg_msg_msg(msg); struct msg_msg *msg = msg_msg_msg_msg_msg(msg); int ret; if (!msg) return 0; msg_msg_msg_msg_msg(msg, msg, msg->msg_msg, msg->msg_msg); msg_msg_msg_msg_msg(msg, msg->msg_msg, msg->msg_msg); msg_msg_msg_msg_msg(msg, msg->msg_msg); msg_msg_msg_msg(msg, msg->msg_msg, msg->msg_msg); msg_msg_msg_msg(msg, msg->msg_msg); msg_msg_msg_msg(msg, msg->msg_msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg(msg, msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg(msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg_msg_msgmsg_msg(msg, msg, msg); msg_msg_msg_msg(msg, msg); msg_msg_msg_msg(msg_msg, msg); msg_msg_msg(msg_msg_msg_msg(msg, msg, msg); msg_msgmsg_msg_msg_msg(msg_msg, msg); msg_msg(msg_msg_msg_msgmsg_msg_msg(msg, msg, msg); msgmsg_msg_msg_msgmsg_msg(msgmsg, msg); msg_msg_msg(msg_msg_msg_msg(msg, msg); msg_msg_msgmsg_msg(msg_msgmsgmsg_msg_msg_msg_msg(msg, msg, msg); msg_msg_msg_msg_msg(msg, msg); msg_msgmsg_msg(msg_msg_msg_msgmsg_msg_msg(msg, msg, msg, msg); msg_msg_msg_msg(msg_msg_msg_msg_msg_msgms