1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
| void __fastcall main_main() { p_string = (string *)runtime_newobject(&RTYPE_string); p_string_1 = p_string; p_string->ptr = 0; v56[0] = &RTYPE__ptr_string; v56[1] = p_string; v2 = qword_857068; fmt_Fscanf(2, v56, v3, "%s", 1, 1); if ( v2 || p_string_1->len != 0x20 ) goto LABEL_4; input[0] = v0; input[1] = v0; len_2 = (unsigned __int64)p_string_1->ptr; input_1 = runtime_stringtoslicebyte(v48, p_string_1->ptr, p_string_1->len); v51 = input_1; ptr_1 = len_2; v46 = v6; for ( i = 0; (__int64)len_2 > i; i = len_1 + 8 ) { len_1 = i; while ( i < (__int64)(len_1 + 4) ) { if ( len_2 <= i ) runtime_panicIndex(i, len_2, len_2); if ( len_2 <= i + 2 ) runtime_panicIndex(i + 2, len_2, len_2); res = *(_BYTE *)(i + input_1) ^ *(_BYTE *)(i + input_1 + 2); *(_BYTE *)(input_1 + i) = res; if ( len_2 <= i + 1 ) runtime_panicIndex(i + 1, len_2, len_2); res_1 = res ^ *(_BYTE *)(i + input_1 + 2) ^ *(_BYTE *)(i + input_1 + 1); *(_BYTE *)(i + input_1 + 1) = res_1; *(_BYTE *)(i + input_1 + 2) ^= res_1; i += 3LL; } v57[0] = 0; v58 = 0; v59 = v0; p_bytes_Buffer_1 = 0; v10 = (_QWORD *)math_big__ptr_Int_SetInt64(v57, 0); ptr_4 = len_1; ptr_5 = len_1 + 8; if ( v46 < len_1 + 8 ) runtime_panicSliceAcap(v10, 0, len_1 + 8); if ( len_1 > ptr_5 ) goto LABEL_47; v50 = v10; v13 = (len_1 & ((__int64)(len_1 - v46) >> 63)) + v51; v14 = v10[2]; v15 = math_big_nat_setBytes(v10[1], v14, v10[3], v13, 8, v46 - len_1); v16 = v50; v50[2] = v14; v16[3] = v17; if ( dword_8ABB30 ) { LODWORD(v13) = (_DWORD)v16 + 8; runtime_gcWriteBarrier(v16 + 1); } else { v16[1] = v15; } *(_BYTE *)v16 = 0; if ( v16[2] ) v18 = *(_QWORD *)v16[1]; else v18 = 0; for ( n64 = 0; n64 < 64; ++n64 ) { if ( v18 < 0 ) v18 = (2 * v18) ^ 0x2EF20D07161E85F7LL; else v18 *= 2; } v44 = v18; p_bytes_Buffer = (bytes_Buffer *)runtime_newobject(&RTYPE_bytes_Buffer); v25 = (_QWORD *)runtime_convT64(v44, v14, v20, v13, 8, v21, v22, v23, v24, v43); p_bytes_Buffer_1 = p_bytes_Buffer; v29 = encoding_binary_Write( (__int64)go_itab__ptr_bytes_Buffer_comma__ptr_io_Writer, (__int64)p_bytes_Buffer, (void (__golang **)(_QWORD, _QWORD, _QWORD, _QWORD, _QWORD))go_itab__ptr_binary_littleEndian_comma__ptr_binary_ByteOrder, (__int64)&unk_8ABAD8, &RTYPE_int64, v25, v26, v27, v28); if ( v29 ) { runtime_gopanic( (unsigned int)v29[1], (_DWORD)p_bytes_Buffer_1, v30, (unsigned int)&unk_8ABAD8, (unsigned int)&RTYPE_int64, v31, v32, v33, v34, v43); LABEL_47: runtime_panicSliceB(ptr_4, p_bytes_Buffer_1, ptr_5); } p_bytes_Buffer_2 = p_bytes_Buffer; for ( n8 = 0; n8 < 8; ++n8 ) { for ( p_bytes_Buffer_3 = 0; p_bytes_Buffer_3 < 8; ++p_bytes_Buffer_3 ) { len = p_bytes_Buffer_2->buf.len; off = p_bytes_Buffer_2->off; if ( off > len ) runtime_panicSliceB(p_bytes_Buffer_2->off, p_bytes_Buffer_1, p_bytes_Buffer_2->buf.len); p_bytes_Buffer_4 = len - off; if ( p_bytes_Buffer_3 >= p_bytes_Buffer_4 ) runtime_panicIndex(p_bytes_Buffer_3, p_bytes_Buffer_1, p_bytes_Buffer_4); p_bytes_Buffer_1 = (bytes_Buffer *)p_bytes_Buffer_3; if ( ((0x80u >> n8) & __ROL1__( p_bytes_Buffer_2->buf.ptr[(((__int64)(off - p_bytes_Buffer_2->buf.cap) >> 63) & p_bytes_Buffer_2->off) + p_bytes_Buffer_3], 5)) != 0 ) { if ( n8 + len_1 >= 0x20 ) runtime_panicIndex(n8 + len_1, p_bytes_Buffer_3, 32); *((_BYTE *)input + n8 + len_1) |= 0x80u >> p_bytes_Buffer_3; } } } input_1 = v51; len_2 = ptr_1; } cipher[0] = 0x8ADD5C04E5934C8LL; cipher[1] = 0x199AC0E6DA4C2BC9LL; cipher[2] = 0xFF83F5E87D5510B5LL; cipher[3] = 0x58447D6AD4E38B74LL; if ( (unsigned __int8)runtime_memequal(input, cipher, 32) ) { v55[0] = &RTYPE_string; v55[1] = &off_7CE248; fmt_Fprintln(go_itab__ptr_os_File_comma__ptr_io_Writer, qword_857070, v55, 1, 1); } else { LABEL_4: v54[0] = &RTYPE_string; v54[1] = &off_7CE258; fmt_Fprintln(go_itab__ptr_os_File_comma__ptr_io_Writer, qword_857070, v54, 1, 1); } }
|