Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* This file has been generated by the Hex-Rays decompiler.
- Copyright (c) 2007-2015 Hex-Rays <info@hex-rays.com>
- Detected compiler: GNU C++
- */
- #include <defs.h>
- //-------------------------------------------------------------------------
- // Function declarations
- int init_proc();
- // int __gmon_start__(void); weak
- // _QWORD std::string::size(std::string *this); idb
- // _QWORD std::ios_base::Init::Init(std::ios_base::Init *this); idb
- // int __fastcall __cxa_atexit(_QWORD, _QWORD, _QWORD); weak
- _QWORD __cdecl std::ios_base::Init::~Init(std::ios_base::Init *__hidden this); // weak
- // int __fastcall std::string::string(_QWORD, _QWORD, _QWORD, _QWORD); weak
- // _QWORD __cdecl std::string::~string(std::string *this); idb
- // _QWORD __cdecl std::string::insert(std::string *this, unsigned __int64, const std::string *); idb
- // int __fastcall std::allocator<char>::~allocator(_QWORD); weak
- // _QWORD std::string::capacity(std::string *this); idb
- // int __fastcall std::allocator<char>::allocator(_QWORD); weak
- // int __fastcall std::string::string(_QWORD, _QWORD); weak
- // _QWORD __cdecl std::string::append(std::string *this, const std::string *); idb
- int deregister_tm_clones();
- int register_tm_clones();
- int _do_global_dtors_aux();
- int frame_dummy();
- __int64 flag(void); // idb
- int __cdecl main(int argc, const char **argv, const char **envp);
- int __fastcall __static_initialization_and_destruction_0(int a1, int a2);
- int GLOBAL__sub_I__Z4flagv();
- __int64 __fastcall std::move<std::string &>(__int64 a1);
- __int64 __fastcall std::operator+<char,std::char_traits<char>,std::allocator<char>>(__int64 a1, std::string *a2, std::string *a3);
- void __fastcall _libc_csu_init(unsigned int a1, __int64 a2, __int64 a3);
- void term_proc();
- //-------------------------------------------------------------------------
- // Data declarations
- __int64 (__fastcall *_frame_dummy_init_array_entry[3])() = { &frame_dummy, &GLOBAL__sub_I__Z4flagv, &_do_global_dtors_aux }; // weak
- __int64 (__fastcall *_do_global_dtors_aux_fini_array_entry)() = &_do_global_dtors_aux; // weak
- _UNKNOWN _dso_handle; // weak
- char edata; // weak
- _UNKNOWN std::__ioinit; // weak
- _UNKNOWN unk_6030AF; // weak
- // extern _UNKNOWN _gmon_start__; weak
- //----- (00000000004008C8) ----------------------------------------------------
- int init_proc()
- {
- void *v0; // rax@1
- v0 = &_gmon_start__;
- if ( &_gmon_start__ )
- LODWORD(v0) = __gmon_start__();
- return (unsigned __int64)v0;
- }
- // 400900: using guessed type int __gmon_start__(void);
- //----- (0000000000400A00) ----------------------------------------------------
- #error "400A06: positive sp value has been found (funcsize=3)"
- //----- (0000000000400A30) ----------------------------------------------------
- int deregister_tm_clones()
- {
- signed __int64 v0; // rax@1
- v0 = &unk_6030AF - (_UNKNOWN *)&edata;
- if ( (unsigned __int64)(&unk_6030AF - (_UNKNOWN *)&edata) > 0xE )
- LODWORD(v0) = 0;
- return v0;
- }
- // 6030A8: using guessed type char edata;
- //----- (0000000000400A60) ----------------------------------------------------
- int register_tm_clones()
- {
- return 0;
- }
- //----- (0000000000400AA0) ----------------------------------------------------
- int _do_global_dtors_aux()
- {
- int result; // eax@2
- if ( !edata )
- {
- result = deregister_tm_clones();
- edata = 1;
- }
- return result;
- }
- // 6030A8: using guessed type char edata;
- //----- (0000000000400AC0) ----------------------------------------------------
- int frame_dummy()
- {
- return register_tm_clones();
- }
- // 400AC0: could not find valid save-restore pair for rbp
- //----- (0000000000400AED) ----------------------------------------------------
- std::string::string flag(void)
- {
- char v1; // [sp+0h] [bp-3D2h]@0
- char v2; // [sp+Ah] [bp-3C8h]@0
- char v3; // [sp+Bh] [bp-3C7h]@0
- char v4; // [sp+12h] [bp-3C0h]@0
- char v5; // [sp+14h] [bp-3BEh]@0
- char v6; // [sp+17h] [bp-3BBh]@0
- char v7; // [sp+1Ah] [bp-3B8h]@0
- char v8; // [sp+1Ch] [bp-3B6h]@0
- char v9; // [sp+1Dh] [bp-3B5h]@0
- char v10; // [sp+1Eh] [bp-3B4h]@0
- char v11; // [sp+20h] [bp-3B2h]@0
- char v12; // [sp+24h] [bp-3AEh]@0
- char v13; // [sp+26h] [bp-3ACh]@0
- char v14; // [sp+27h] [bp-3ABh]@0
- char v15; // [sp+28h] [bp-3AAh]@0
- char v16; // [sp+2Ah] [bp-3A8h]@0
- char v17; // [sp+2Fh] [bp-3A3h]@1
- char v18; // [sp+30h] [bp-3A2h]@1
- char v19; // [sp+31h] [bp-3A1h]@1
- char v20; // [sp+32h] [bp-3A0h]@1
- char v21; // [sp+33h] [bp-39Fh]@1
- char v22; // [sp+34h] [bp-39Eh]@1
- char v23; // [sp+35h] [bp-39Dh]@1
- char v24; // [sp+36h] [bp-39Ch]@1
- char v25; // [sp+37h] [bp-39Bh]@1
- char v26; // [sp+38h] [bp-39Ah]@1
- char v27; // [sp+39h] [bp-399h]@1
- char v28; // [sp+3Ah] [bp-398h]@1
- char v29; // [sp+3Bh] [bp-397h]@1
- char v30; // [sp+3Ch] [bp-396h]@1
- char v31; // [sp+3Dh] [bp-395h]@1
- char v32; // [sp+3Eh] [bp-394h]@1
- char v33; // [sp+3Fh] [bp-393h]@1
- char v34; // [sp+40h] [bp-392h]@1
- char v35; // [sp+41h] [bp-391h]@1
- char v36; // [sp+42h] [bp-390h]@1
- char v37; // [sp+43h] [bp-38Fh]@1
- char v38; // [sp+44h] [bp-38Eh]@1
- char v39; // [sp+45h] [bp-38Dh]@1
- char v40; // [sp+46h] [bp-38Ch]@1
- char v41; // [sp+47h] [bp-38Bh]@1
- char v42; // [sp+48h] [bp-38Ah]@1
- char v43; // [sp+49h] [bp-389h]@1
- char v44; // [sp+4Ah] [bp-388h]@1
- char v45; // [sp+4Bh] [bp-387h]@1
- char v46; // [sp+4Ch] [bp-386h]@1
- char v47; // [sp+4Dh] [bp-385h]@1
- char v48; // [sp+4Eh] [bp-384h]@1
- char v49; // [sp+4Fh] [bp-383h]@1
- char v50; // [sp+50h] [bp-382h]@1
- char v51; // [sp+51h] [bp-381h]@1
- char v52; // [sp+52h] [bp-380h]@1
- char v53; // [sp+53h] [bp-37Fh]@1
- char v54; // [sp+54h] [bp-37Eh]@1
- char v55; // [sp+55h] [bp-37Dh]@1
- char v56; // [sp+56h] [bp-37Ch]@1
- char v57; // [sp+57h] [bp-37Bh]@1
- char v58; // [sp+58h] [bp-37Ah]@1
- char v59; // [sp+59h] [bp-379h]@1
- char v60; // [sp+5Ah] [bp-378h]@1
- char v61; // [sp+5Bh] [bp-377h]@1
- char v62; // [sp+5Ch] [bp-376h]@1
- char v63; // [sp+5Dh] [bp-375h]@1
- char v64; // [sp+5Eh] [bp-374h]@1
- char v65; // [sp+5Fh] [bp-373h]@1
- char v66; // [sp+60h] [bp-372h]@1
- char v67; // [sp+61h] [bp-371h]@1
- char v68; // [sp+62h] [bp-370h]@1
- char v69; // [sp+63h] [bp-36Fh]@1
- char v70; // [sp+64h] [bp-36Eh]@1
- char v71; // [sp+65h] [bp-36Dh]@1
- char v72; // [sp+66h] [bp-36Ch]@1
- char v73; // [sp+67h] [bp-36Bh]@1
- char v74; // [sp+68h] [bp-36Ah]@1
- char v75; // [sp+69h] [bp-369h]@1
- char v76; // [sp+6Ah] [bp-368h]@1
- char v77; // [sp+6Bh] [bp-367h]@1
- char v78; // [sp+6Ch] [bp-366h]@1
- char v79; // [sp+6Dh] [bp-365h]@1
- char v80; // [sp+6Eh] [bp-364h]@1
- char v81; // [sp+6Fh] [bp-363h]@1
- char v82; // [sp+70h] [bp-362h]@1
- char v83; // [sp+71h] [bp-361h]@1
- char v84; // [sp+72h] [bp-360h]@1
- char v85; // [sp+73h] [bp-35Fh]@1
- char v86; // [sp+74h] [bp-35Eh]@1
- char v87; // [sp+75h] [bp-35Dh]@1
- char v88; // [sp+76h] [bp-35Ch]@1
- char v89; // [sp+77h] [bp-35Bh]@1
- char v90; // [sp+78h] [bp-35Ah]@1
- char v91; // [sp+79h] [bp-359h]@1
- char v92; // [sp+7Ah] [bp-358h]@1
- char v93; // [sp+7Bh] [bp-357h]@1
- char v94; // [sp+7Ch] [bp-356h]@1
- char v95; // [sp+7Dh] [bp-355h]@1
- char v96; // [sp+7Eh] [bp-354h]@1
- char v97; // [sp+7Fh] [bp-353h]@1
- char v98; // [sp+80h] [bp-352h]@1
- char v99; // [sp+81h] [bp-351h]@1
- char v100; // [sp+82h] [bp-350h]@1
- char v101; // [sp+83h] [bp-34Fh]@1
- char v102; // [sp+84h] [bp-34Eh]@1
- char v103; // [sp+85h] [bp-34Dh]@1
- char v104; // [sp+86h] [bp-34Ch]@1
- char v105; // [sp+87h] [bp-34Bh]@1
- char v106; // [sp+88h] [bp-34Ah]@1
- char v107; // [sp+89h] [bp-349h]@1
- char v108; // [sp+8Ah] [bp-348h]@1
- char v109; // [sp+8Bh] [bp-347h]@1
- char v110; // [sp+8Ch] [bp-346h]@1
- char v111; // [sp+8Dh] [bp-345h]@1
- char v112; // [sp+8Eh] [bp-344h]@1
- char v113; // [sp+8Fh] [bp-343h]@1
- char v114; // [sp+90h] [bp-342h]@1
- char v115; // [sp+91h] [bp-341h]@1
- char v116; // [sp+92h] [bp-340h]@1
- char v117; // [sp+A2h] [bp-330h]@1
- char v118; // [sp+B2h] [bp-320h]@1
- char v119; // [sp+C2h] [bp-310h]@1
- char v120; // [sp+D2h] [bp-300h]@1
- char v121; // [sp+E2h] [bp-2F0h]@1
- char v122; // [sp+F2h] [bp-2E0h]@1
- char v123; // [sp+102h] [bp-2D0h]@1
- char v124; // [sp+112h] [bp-2C0h]@1
- char v125; // [sp+122h] [bp-2B0h]@1
- char v126; // [sp+132h] [bp-2A0h]@1
- char v127; // [sp+142h] [bp-290h]@1
- char v128; // [sp+152h] [bp-280h]@1
- char v129; // [sp+162h] [bp-270h]@1
- char v130; // [sp+172h] [bp-260h]@1
- char v131; // [sp+182h] [bp-250h]@1
- char v132; // [sp+192h] [bp-240h]@1
- char v133; // [sp+1A2h] [bp-230h]@1
- char v134; // [sp+1B2h] [bp-220h]@1
- char v135; // [sp+1C2h] [bp-210h]@1
- char v136; // [sp+1D2h] [bp-200h]@1
- char v137; // [sp+1E2h] [bp-1F0h]@1
- char v138; // [sp+1F2h] [bp-1E0h]@1
- char v139; // [sp+202h] [bp-1D0h]@1
- char v140; // [sp+212h] [bp-1C0h]@1
- char v141; // [sp+222h] [bp-1B0h]@1
- char v142; // [sp+232h] [bp-1A0h]@1
- char v143; // [sp+242h] [bp-190h]@1
- char v144; // [sp+252h] [bp-180h]@1
- char v145; // [sp+262h] [bp-170h]@1
- char v146; // [sp+272h] [bp-160h]@1
- char v147; // [sp+282h] [bp-150h]@1
- char v148; // [sp+292h] [bp-140h]@1
- char v149; // [sp+2A2h] [bp-130h]@1
- char v150; // [sp+2B2h] [bp-120h]@1
- char v151; // [sp+2C2h] [bp-110h]@1
- char v152; // [sp+2D2h] [bp-100h]@1
- char v153; // [sp+2E2h] [bp-F0h]@1
- char v154; // [sp+2F2h] [bp-E0h]@1
- char v155; // [sp+302h] [bp-D0h]@1
- char v156; // [sp+312h] [bp-C0h]@1
- char v157; // [sp+322h] [bp-B0h]@1
- char v158; // [sp+332h] [bp-A0h]@1
- char v159; // [sp+342h] [bp-90h]@1
- char v160; // [sp+352h] [bp-80h]@1
- char v161; // [sp+362h] [bp-70h]@1
- char v162; // [sp+372h] [bp-60h]@1
- char v163; // [sp+382h] [bp-50h]@1
- char v164; // [sp+392h] [bp-40h]@1
- char v165; // [sp+3A2h] [bp-30h]@1
- char v166; // [sp+3B2h] [bp-20h]@1
- v43 = 113;
- v44 = 122;
- v45 = 115;
- v46 = 97;
- v47 = 120;
- v48 = 119;
- v49 = 99;
- v50 = 101;
- v51 = 102;
- v52 = 100;
- v53 = 118;
- v54 = 114;
- v55 = 98;
- v56 = 116;
- v57 = 110;
- v58 = 103;
- v59 = 104;
- v60 = 123;
- v61 = 121;
- v62 = 109;
- v63 = 106;
- v64 = 117;
- v65 = 107;
- v66 = 105;
- v67 = 108;
- v68 = 111;
- v69 = 112;
- v70 = 49;
- v71 = 54;
- v72 = 50;
- v73 = 53;
- v74 = 51;
- v75 = 57;
- v76 = 53;
- v77 = 48;
- v78 = 125;
- v79 = 52;
- v80 = 57;
- v81 = 50;
- v82 = 56;
- v83 = 51;
- v84 = 55;
- v85 = 52;
- v86 = 97;
- v87 = 102;
- v88 = 95;
- v89 = 45;
- v90 = v6;
- v91 = v1;
- v92 = v3;
- v93 = v16;
- v94 = v9;
- v95 = v1;
- v96 = v11;
- v97 = v16;
- v98 = v1;
- v99 = v14;
- v100 = v9;
- v101 = v13;
- v102 = v13;
- v103 = v7;
- v104 = v8;
- v105 = v15;
- v106 = v12;
- v107 = v16;
- v108 = v11;
- v109 = v1;
- v110 = v7;
- v111 = v5;
- v112 = v4;
- v113 = v2;
- v114 = v14;
- v115 = v10;
- std::allocator<char>::allocator(&v42);
- std::string::string(&v166, 1LL, (unsigned int)v113, &v42);
- std::allocator<char>::allocator(&v41);
- std::string::string(&v164, 1LL, (unsigned int)v103, &v41);
- std::allocator<char>::allocator(&v40);
- std::string::string(&v162, 1LL, (unsigned int)v102, &v40);
- std::allocator<char>::allocator(&v39);
- std::string::string(&v160, 1LL, (unsigned int)v110, &v39);
- std::allocator<char>::allocator(&v38);
- std::string::string(&v158, 1LL, (unsigned int)v109, &v38);
- std::allocator<char>::allocator(&v37);
- std::string::string(&v156, 1LL, (unsigned int)v108, &v37);
- std::allocator<char>::allocator(&v36);
- std::string::string(&v154, 1LL, (unsigned int)v107, &v36);
- std::allocator<char>::allocator(&v35);
- std::string::string(&v152, 1LL, (unsigned int)v106, &v35);
- std::allocator<char>::allocator(&v34);
- std::string::string(&v150, 1LL, (unsigned int)v91, &v34);
- std::allocator<char>::allocator(&v33);
- std::string::string(&v148, 1LL, (unsigned int)v90, &v33);
- std::allocator<char>::allocator(&v32);
- std::string::string(&v146, 1LL, (unsigned int)v114, &v32);
- std::allocator<char>::allocator(&v31);
- std::string::string(&v144, 1LL, (unsigned int)v101, &v31);
- std::allocator<char>::allocator(&v30);
- std::string::string(&v142, 1LL, (unsigned int)v100, &v30);
- std::allocator<char>::allocator(&v29);
- std::string::string(&v140, 1LL, (unsigned int)v99, &v29);
- std::allocator<char>::allocator(&v28);
- std::string::string(&v138, 1LL, (unsigned int)v98, &v28);
- std::allocator<char>::allocator(&v27);
- std::string::string(&v136, 1LL, (unsigned int)v97, &v27);
- std::allocator<char>::allocator(&v26);
- std::string::string(&v134, 1LL, (unsigned int)v96, &v26);
- std::allocator<char>::allocator(&v25);
- std::string::string(&v132, 1LL, (unsigned int)v112, &v25);
- std::allocator<char>::allocator(&v24);
- std::string::string(&v130, 1LL, (unsigned int)v111, &v24);
- std::allocator<char>::allocator(&v23);
- std::string::string(&v128, 1LL, (unsigned int)v115, &v23);
- std::allocator<char>::allocator(&v22);
- std::string::string(&v126, 1LL, (unsigned int)v95, &v22);
- std::allocator<char>::allocator(&v21);
- std::string::string(&v124, 1LL, (unsigned int)v94, &v21);
- std::allocator<char>::allocator(&v20);
- std::string::string(&v122, 1LL, (unsigned int)v93, &v20);
- std::allocator<char>::allocator(&v19);
- std::string::string(&v120, 1LL, (unsigned int)v92, &v19);
- std::allocator<char>::allocator(&v18);
- std::string::string(&v118, 1LL, (unsigned int)v105, &v18);
- std::allocator<char>::allocator(&v17);
- std::string::string(&v117, 1LL, (unsigned int)v104, &v17);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v119,
- (std::string *)&v117,
- (std::string *)&v118);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v121,
- (std::string *)&v119,
- (std::string *)&v120);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v123,
- (std::string *)&v121,
- (std::string *)&v122);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v125,
- (std::string *)&v123,
- (std::string *)&v124);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v127,
- (std::string *)&v125,
- (std::string *)&v126);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v129,
- (std::string *)&v127,
- (std::string *)&v128);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v131,
- (std::string *)&v129,
- (std::string *)&v130);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v133,
- (std::string *)&v131,
- (std::string *)&v132);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v135,
- (std::string *)&v133,
- (std::string *)&v134);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v137,
- (std::string *)&v135,
- (std::string *)&v136);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v139,
- (std::string *)&v137,
- (std::string *)&v138);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v141,
- (std::string *)&v139,
- (std::string *)&v140);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v143,
- (std::string *)&v141,
- (std::string *)&v142);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v145,
- (std::string *)&v143,
- (std::string *)&v144);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v147,
- (std::string *)&v145,
- (std::string *)&v146);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v149,
- (std::string *)&v147,
- (std::string *)&v148);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v151,
- (std::string *)&v149,
- (std::string *)&v150);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v153,
- (std::string *)&v151,
- (std::string *)&v152);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v155,
- (std::string *)&v153,
- (std::string *)&v154);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v157,
- (std::string *)&v155,
- (std::string *)&v156);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v159,
- (std::string *)&v157,
- (std::string *)&v158);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v161,
- (std::string *)&v159,
- (std::string *)&v160);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v163,
- (std::string *)&v161,
- (std::string *)&v162);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v165,
- (std::string *)&v163,
- (std::string *)&v164);
- std::operator+<char,std::char_traits<char>,std::allocator<char>>(
- (__int64)&v116,
- (std::string *)&v165,
- (std::string *)&v166);
- std::string::~string((std::string *)&v165);
- std::string::~string((std::string *)&v163);
- std::string::~string((std::string *)&v161);
- std::string::~string((std::string *)&v159);
- std::string::~string((std::string *)&v157);
- std::string::~string((std::string *)&v155);
- std::string::~string((std::string *)&v153);
- std::string::~string((std::string *)&v151);
- std::string::~string((std::string *)&v149);
- std::string::~string((std::string *)&v147);
- std::string::~string((std::string *)&v145);
- std::string::~string((std::string *)&v143);
- std::string::~string((std::string *)&v141);
- std::string::~string((std::string *)&v139);
- std::string::~string((std::string *)&v137);
- std::string::~string((std::string *)&v135);
- std::string::~string((std::string *)&v133);
- std::string::~string((std::string *)&v131);
- std::string::~string((std::string *)&v129);
- std::string::~string((std::string *)&v127);
- std::string::~string((std::string *)&v125);
- std::string::~string((std::string *)&v123);
- std::string::~string((std::string *)&v121);
- std::string::~string((std::string *)&v119);
- std::string::~string((std::string *)&v117);
- std::allocator<char>::~allocator(&v17);
- std::string::~string((std::string *)&v118);
- std::allocator<char>::~allocator(&v18);
- std::string::~string((std::string *)&v120);
- std::allocator<char>::~allocator(&v19);
- std::string::~string((std::string *)&v122);
- std::allocator<char>::~allocator(&v20);
- std::string::~string((std::string *)&v124);
- std::allocator<char>::~allocator(&v21);
- std::string::~string((std::string *)&v126);
- std::allocator<char>::~allocator(&v22);
- std::string::~string((std::string *)&v128);
- std::allocator<char>::~allocator(&v23);
- std::string::~string((std::string *)&v130);
- std::allocator<char>::~allocator(&v24);
- std::string::~string((std::string *)&v132);
- std::allocator<char>::~allocator(&v25);
- std::string::~string((std::string *)&v134);
- std::allocator<char>::~allocator(&v26);
- std::string::~string((std::string *)&v136);
- std::allocator<char>::~allocator(&v27);
- std::string::~string((std::string *)&v138);
- std::allocator<char>::~allocator(&v28);
- std::string::~string((std::string *)&v140);
- std::allocator<char>::~allocator(&v29);
- std::string::~string((std::string *)&v142);
- std::allocator<char>::~allocator(&v30);
- std::string::~string((std::string *)&v144);
- std::allocator<char>::~allocator(&v31);
- std::string::~string((std::string *)&v146);
- std::allocator<char>::~allocator(&v32);
- std::string::~string((std::string *)&v148);
- std::allocator<char>::~allocator(&v33);
- std::string::~string((std::string *)&v150);
- std::allocator<char>::~allocator(&v34);
- std::string::~string((std::string *)&v152);
- std::allocator<char>::~allocator(&v35);
- std::string::~string((std::string *)&v154);
- std::allocator<char>::~allocator(&v36);
- std::string::~string((std::string *)&v156);
- std::allocator<char>::~allocator(&v37);
- std::string::~string((std::string *)&v158);
- std::allocator<char>::~allocator(&v38);
- std::string::~string((std::string *)&v160);
- std::allocator<char>::~allocator(&v39);
- std::string::~string((std::string *)&v162);
- std::allocator<char>::~allocator(&v40);
- std::string::~string((std::string *)&v164);
- std::allocator<char>::~allocator(&v41);
- std::string::~string((std::string *)&v166);
- std::allocator<char>::~allocator(&v42);
- return std::string::~string((std::string *)&v116);
- }
- // 400960: using guessed type int __fastcall std::string::string(_QWORD, _QWORD, _QWORD, _QWORD);
- // 400990: using guessed type int __fastcall std::allocator<char>::~allocator(_QWORD);
- // 4009B0: using guessed type int __fastcall std::allocator<char>::allocator(_QWORD);
- //----- (0000000000401F6F) ----------------------------------------------------
- int __cdecl main(int argc, const char **argv, const char **envp)
- {
- printf("%s", flag());
- return 1;
- }
- //----- (0000000000401F8A) ----------------------------------------------------
- int __fastcall __static_initialization_and_destruction_0(int a1, int a2)
- {
- int result; // eax@3
- if ( a1 == 1 && a2 == 0xFFFF )
- {
- std::ios_base::Init::Init((std::ios_base::Init *)&std::__ioinit);
- result = __cxa_atexit(std::ios_base::Init::~Init, &std::__ioinit, &_dso_handle);
- }
- return result;
- }
- // 400940: using guessed type int __fastcall __cxa_atexit(_QWORD, _QWORD, _QWORD);
- // 400950: using guessed type _QWORD __cdecl std::ios_base::Init::~Init(std::ios_base::Init *__hidden this);
- //----- (0000000000401FC7) ----------------------------------------------------
- int GLOBAL__sub_I__Z4flagv()
- {
- return __static_initialization_and_destruction_0(1, 0xFFFF);
- }
- //----- (0000000000401FDC) ----------------------------------------------------
- __int64 __fastcall std::move<std::string &>(__int64 a1)
- {
- return a1;
- }
- //----- (0000000000401FEA) ----------------------------------------------------
- __int64 __fastcall std::operator+<char,std::char_traits<char>,std::allocator<char>>(__int64 a1, std::string *a2, std::string *a3)
- {
- __int64 v3; // rbx@1
- bool v4; // al@3
- __int64 v5; // rax@6
- __int64 v6; // rax@6
- __int64 v7; // rax@7
- __int64 v8; // rax@7
- std::string *v10; // [sp+8h] [bp-38h]@1
- __int64 v11; // [sp+28h] [bp-18h]@1
- v10 = a3;
- v3 = std::string::size(a2);
- v11 = v3 + std::string::size(v10);
- v4 = std::string::capacity(a2) < (unsigned __int64)v11 && std::string::capacity(v10) >= (unsigned __int64)v11;
- if ( v4 )
- {
- v5 = std::string::insert(v10, 0LL, a2);
- v6 = std::move<std::string &>(v5);
- std::string::string(a1, v6);
- }
- else
- {
- v7 = std::string::append(a2, v10);
- v8 = std::move<std::string &>(v7);
- std::string::string(a1, v8);
- }
- return a1;
- }
- // 4009D0: using guessed type int __fastcall std::string::string(_QWORD, _QWORD);
- //----- (00000000004020D0) ----------------------------------------------------
- void __fastcall _libc_csu_init(unsigned int a1, __int64 a2, __int64 a3)
- {
- __int64 v3; // r13@1
- __int64 v4; // rbx@1
- signed __int64 v5; // rbp@1
- v3 = a3;
- v4 = 0LL;
- v5 = &_do_global_dtors_aux_fini_array_entry - _frame_dummy_init_array_entry;
- init_proc();
- if ( v5 )
- {
- do
- ((void (__fastcall *)(_QWORD, __int64, __int64))_frame_dummy_init_array_entry[v4++])(a1, a2, v3);
- while ( v4 != v5 );
- }
- }
- // 602DE8: using guessed type __int64 (__fastcall *_frame_dummy_init_array_entry[3])();
- // 602DF8: using guessed type __int64 (__fastcall *_do_global_dtors_aux_fini_array_entry)();
- //----- (0000000000402144) ----------------------------------------------------
- void term_proc()
- {
- ;
- }
- #error "There were 1 decompilation failure(s) on 14 function(s)"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement