// // This file was generated by the Retargetable Decompiler // Website: https://retdec.com // Copyright (c) 2019 Retargetable Decompiler // #include #include // ---------------- Integer Types Definitions ----------------- typedef int8_t int2_t; // ------------------------- Classes -------------------------- // .?AV__non_rtti_object@std@@ (base classes: .?AVexception@std@@, .?AVbad_typeid@std@@) // .?AVbad_cast@std@@ (base classes: .?AVexception@std@@) // .?AVbad_exception@std@@ (base classes: .?AVexception@std@@) // .?AVbad_typeid@std@@ (base classes: .?AVexception@std@@) // .?AVexception@std@@ // type_info // Sun // ------------------- Function Prototypes -------------------- int32_t check_dbg(void); void funexit(void); char * j__3f_what_40_exception_40_std_40__40_UBEPBDXZ(int32_t * a1); int32_t j___RTC_CheckEsp(void); int32_t sub_42D32A(int32_t a1); int32_t sub_42D37A(int32_t a1); int32_t sub_42D7F8(void); int32_t sub_42D857(int32_t a1); int32_t sub_42D9F6(int32_t a1); int32_t sub_42DABE(int32_t a1); int32_t sub_42DB6D(int32_t a1); int32_t sub_42E26B(void); int32_t sub_434990(int32_t input, uint32_t a1024, int32_t output); // --------------------- Global Variables --------------------- int32_t g1; // ------------------------ Functions ------------------------- // Address range: 0x434990 - 0x434bf0 int32_t sub_434990(int32_t input, uint32_t a1024, int32_t output) { int32_t v1 = 0; // esp int32_t v2; // bp-260 __asm_rep_stosd_memset((char *)&v2, -0x33333334, 64); if (a1024 == 0) { // 0x434bdc return j___RTC_CheckEsp(); } int32_t v3 = a1024 + input; // 0x434b07 uint32_t v4 = 0; int32_t v5 = 0; int32_t v6; while (true) { lab_0x4349d9:; int32_t v7 = v4 % 4; char v8 = *(char *)(v4 + input); // 0x4349ee if (v8 == 61 || v8 > 122) { // break -> 0x434bdc break; } char v9 = *(char *)((int32_t)v8 + (int32_t)"\x56\x57\x58\x59\x5a\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3e\xff\xff\xff\x3f\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\xff\xff\xff\xff\xff\xff\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff\xff\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); // 0x434a22 uint32_t v10 = (int32_t)v9; // 0x434a22 if (v9 == -1) { // break -> 0x434bdc break; } // 0x434a3c v2 = v7; g1 = v7; switch ((int2_t)v7) { case 0: { // 0x434a5f *(char *)(v5 + output) = 4 * v9; if (check_dbg() == 1) { // 0x434a87 *(int32_t *)(v1 - 4) = 0; funexit(); } // 0x434a91 if (sub_42E26B() == 1) { // 0x434aa6 *(int32_t *)(v1 - 4) = 0; funexit(); } // 0x434ab0 if (sub_42D7F8() == 1) { // 0x434ac5 *(int32_t *)(v1 - 4) = 0; funexit(); v6 = v5; } else { v6 = v5; } goto lab_0x4349c4; } case 1: { char * v11 = (char *)(v5 + output); // 0x434ae3 *v11 = (char)((int32_t)*v11 + (v10 / 16 & 3)); int32_t v12 = v5 + 1; // 0x434af3 if (v4 < a1024 - 3) { // 0x434b13 *(char *)(v12 + output) = 16 * v9; v6 = v12; goto lab_0x4349c4; } else { // 0x434b04 if (*(char *)(v3 - 2) == 61) { v6 = v12; goto lab_0x4349c4; } else { // 0x434b13 *(char *)(v12 + output) = 16 * v9; v6 = v12; goto lab_0x4349c4; } } } case -2: { char * v13 = (char *)(v5 + output); // 0x434b38 *v13 = (char)((int32_t)*v13 + (v10 / 4 & 15)); int32_t v14 = v5 + 1; // 0x434b48 if (sub_42E26B() == 1) { // 0x434b5c *(int32_t *)(v1 - 4) = 0; funexit(); } // 0x434b66 if (sub_42D7F8() == 1) { // 0x434b7b *(int32_t *)(v1 - 4) = 0; funexit(); } if (v4 < a1024 - 2) { // 0x434b9f *(char *)(v14 + output) = 64 * v9; v6 = v14; goto lab_0x4349c4; } else { // 0x434b90 if (*(char *)(v3 - 1) == 61) { v6 = v14; goto lab_0x4349c4; } else { // 0x434b9f *(char *)(v14 + output) = 64 * v9; v6 = v14; goto lab_0x4349c4; } } } case -1: { char * v15 = (char *)(v5 + output); // 0x434bbf *v15 = *v15 + v9; v6 = v5 + 1; goto lab_0x4349c4; } default: { // 0x4349c42 // UNREACHABLE } } } // 0x434bdc return j___RTC_CheckEsp(); lab_0x4349c4:; int32_t v16 = v4 + 1; // 0x4349c7 if (v16 >= a1024) { return j___RTC_CheckEsp(); } v4 = v16; v5 = v6; goto lab_0x4349d9; } // --------------------- Meta-Information --------------------- // Detected compiler/packer: microsoft linker (10.0) // Detected language: C++ // Detected functions: 1 // Decompilation date: 2019-04-20 10:59:44