Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char __fastcall sub_1408975D0(const void **a1, int a2)
- {
- const void **v2; // rdi
- char result; // al
- _QWORD *v4; // rax
- bool v5; // si
- void *v6; // rdx
- unsigned __int64 v7; // rax
- _QWORD *v8; // rax
- bool v9; // si
- void *v10; // rdx
- unsigned __int64 v11; // rax
- _QWORD *v12; // rax
- void *v13; // rcx
- unsigned __int64 v14; // rax
- _QWORD *v15; // rax
- bool v16; // bl
- void *v17; // rdx
- unsigned __int64 v18; // rax
- char *v19; // rbx
- _OWORD *v20; // rsi
- unsigned __int64 v21; // r12
- const void *v22; // r13
- _DWORD *v23; // r14
- unsigned __int64 v24; // rax
- unsigned int v25; // er15
- __int64 v26; // rdx
- unsigned __int64 v27; // r8
- unsigned __int16 v28; // r15
- char *v29; // rbx
- __int16 *v30; // rax
- __int16 v31; // cx
- _QWORD *v32; // rax
- void *v33; // rcx
- unsigned __int64 v34; // rax
- _QWORD *v35; // rax
- void *v36; // rcx
- unsigned __int64 v37; // rax
- _QWORD *v38; // rax
- void *v39; // rcx
- unsigned __int64 v40; // rax
- _QWORD *v41; // rax
- void *v42; // rcx
- unsigned __int64 v43; // rax
- _QWORD *v44; // rax
- void *v45; // rcx
- unsigned __int64 v46; // rax
- _QWORD *v47; // rax
- void *v48; // rcx
- unsigned __int64 v49; // rax
- _QWORD *v50; // rax
- void *v51; // rcx
- unsigned __int64 v52; // rax
- _QWORD *v53; // rax
- bool v54; // si
- void *v55; // rdx
- unsigned __int64 v56; // rax
- _QWORD *v57; // rax
- bool v58; // r14
- void *v59; // rdx
- unsigned __int64 v60; // rax
- int v61; // ebx
- unsigned __int64 v62; // r9
- _WORD *v63; // rdx
- int v64; // er8
- int v65; // ecx
- _QWORD *v66; // rax
- bool v67; // r14
- void *v68; // rdx
- unsigned __int64 v69; // rax
- _QWORD *v70; // rax
- bool v71; // r14
- void *v72; // rdx
- unsigned __int64 v73; // rax
- unsigned __int64 v74; // r8
- _WORD *v75; // rdx
- int v76; // ecx
- _QWORD *v77; // rax
- void *v78; // rcx
- unsigned __int64 v79; // rax
- const void **v80; // [rsp+20h] [rbp-40h]
- void *Memory; // [rsp+30h] [rbp-30h]
- unsigned __int64 v82; // [rsp+48h] [rbp-18h]
- v2 = a1;
- v80 = a1;
- if ( a2 == *a1 )
- return 1;
- *a1 = a2;
- v4 = Load_File_To_Ptr(&Memory, "bin/CARD_INTID_YGO2.bin");
- v5 = sub_14089AB00(v2 + 26, v4);
- if ( v82 >= 0x10 )
- {
- v6 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v7 = *(Memory - 1);
- if ( v7 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v7 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v7 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v6 = *(Memory - 1);
- }
- j_free(v6);
- }
- if ( v5 && v2[26] == 17066 )
- memcpy(&unk_140F7F220, v2[27], 0x42AAui64);
- v8 = Load_File_To_Ptr(&Memory, "bin/CARD_INTID_YGO1.bin");
- v9 = sub_14089AB00(v2 + 28, v8);
- if ( v82 >= 0x10 )
- {
- v10 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v11 = *(Memory - 1);
- if ( v11 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v11 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v11 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v10 = *(Memory - 1);
- }
- j_free(v10);
- }
- if ( v9 && v2[28] == 15504 )
- memcpy(&unk_140E873D0, v2[29], 0x3C90ui64);
- v12 = Load_File_To_Ptr(&Memory, "bin/CARD_Same.bin");
- sub_14089AB00(v2 + 22, v12);
- if ( v82 >= 0x10 )
- {
- v13 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v14 = *(Memory - 1);
- if ( v14 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v14 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v14 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v13 = *(Memory - 1);
- }
- j_free(v13);
- }
- v15 = Load_File_To_Ptr(&Memory, "bin/CARD_Prop.bin");
- v16 = sub_14089AB00(v2 + 16, v15);
- if ( v82 >= 0x10 )
- {
- v17 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v18 = *(Memory - 1);
- if ( v18 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v18 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v18 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v17 = *(Memory - 1);
- }
- j_free(v17);
- }
- if ( v16 )
- {
- v19 = v2[17];
- memset(&unk_141019880, 0, 0x91B30ui64);
- v20 = &unk_140FC0B10;
- memset(&unk_140FC0B10, 0, 0x58D70ui64);
- v21 = (v2[22] * 0xAAAAAAAAAAAAAAABui64 >> 64) >> 2;
- v22 = v2[23];
- v23 = v19 + 4;
- do
- {
- v24 = *(v23 - 1);
- v25 = (*(v23 - 1) << 18) | ((*(v23 - 1) & 0x7FC000 | (*(v23 - 1) >> 18)) >> 5);
- *(v23 - 1) = v25;
- v24 >>= 32;
- *v23 &= 1u;
- v26 = (v24 & 0x7800 | ((v24 & 0x780 | ((v24 & 0x7E) << 10)) << 8)) << 6;
- v27 = (*v23 | (v24 << 31)) & 0x80000001 | v26 | ((v24 & 0x38000 | ((v24 & 0x7C0000 | ((v24 & 0x7800000 | (v24 >> 8) & 0x780000) >> 9)) >> 8)) >> 1);
- *v23 = v27;
- v28 = (v25 >> 18) & 0x3FFF;
- if ( v28 < 0x3091u )
- {
- v29 = &unk_141019880 + 48 * v28;
- *v29 = v28;
- *(v29 + 1) = (*(v23 - 1) >> 9) & 0x1FF;
- *(v29 + 2) = *(v23 - 1) & 0x1FF;
- *(v29 + 3) = (*v23 >> 25) & 0x3F;
- *(v29 + 5) = (*v23 >> 21) & 0xF;
- *(v29 + 6) = (*v23 >> 17) & 0xF;
- *(v29 + 7) = (*v23 >> 14) & 7;
- *(v29 + 4) = (*v23 >> 9) & 0x1F;
- *(v29 + 9) = (*v23 >> 1) & 0xF;
- *(v29 + 10) = (*v23 >> 5) & 0xF;
- *(v29 + 8) = 3;
- v30 = sub_140875AF0(v28, v22, v21, 6i64);
- if ( v30 )
- {
- *(v29 + 23) = v30[1];
- if ( v30[2] & 0x100 )
- v31 = *v30;
- else
- v31 = v30[1];
- *(v29 + 22) = v31;
- }
- else
- {
- *(v29 + 23) = v28;
- *(v29 + 22) = v28;
- }
- *v20 = *v29;
- v20[1] = *(v29 + 1);
- v20[2] = *(v29 + 2);
- }
- v20 += 3;
- v23 += 2;
- }
- while ( v20 < &unk_141019880 );
- v2 = v80;
- sub_14089AB40(v80 + 16, v26, v27, 0x3FFFi64);
- }
- result = sub_140898180();
- if ( result )
- {
- v32 = Load_File_To_Ptr(&Memory, "bin/CARD_Named.bin");
- sub_14089AB00(v2 + 24, v32);
- if ( v82 >= 0x10 )
- {
- v33 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v34 = *(Memory - 1);
- if ( v34 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v34 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v34 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v33 = *(Memory - 1);
- }
- j_free(v33);
- }
- v35 = Load_File_To_Ptr(&Memory, "bin/CARD_Indx_#.bin");
- sub_14089AB00(v2 + 4, v35);
- if ( v82 >= 0x10 )
- {
- v36 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v37 = *(Memory - 1);
- if ( v37 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v37 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v37 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v36 = *(Memory - 1);
- }
- j_free(v36);
- }
- v38 = Load_File_To_Ptr(&Memory, "bin/CARD_Name_#.bin");
- sub_14089AB00(v2 + 2, v38);
- if ( v82 >= 0x10 )
- {
- v39 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v40 = *(Memory - 1);
- if ( v40 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v40 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v40 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v39 = *(Memory - 1);
- }
- j_free(v39);
- }
- v41 = Load_File_To_Ptr(&Memory, "bin/CARD_Desc_#.bin");
- sub_14089AB00(v2 + 6, v41);
- if ( v82 >= 0x10 )
- {
- v42 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v43 = *(Memory - 1);
- if ( v43 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v43 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v43 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v42 = *(Memory - 1);
- }
- j_free(v42);
- }
- v44 = Load_File_To_Ptr(&Memory, "bin/CARD_Sort_#.bin");
- sub_14089AB00(v2 + 8, v44);
- if ( v82 >= 0x10 )
- {
- v45 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v46 = *(Memory - 1);
- if ( v46 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v46 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v46 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v45 = *(Memory - 1);
- }
- j_free(v45);
- }
- v47 = Load_File_To_Ptr(&Memory, "bin/CARD_Sort2_#.bin");
- sub_14089AB00(v2 + 10, v47);
- if ( v82 >= 0x10 )
- {
- v48 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v49 = *(Memory - 1);
- if ( v49 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v49 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v49 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v48 = *(Memory - 1);
- }
- j_free(v48);
- }
- v50 = Load_File_To_Ptr(&Memory, "bin/CARD_Genre.bin");
- sub_14089AB00(v2 + 18, v50);
- if ( v82 >= 0x10 )
- {
- v51 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v52 = *(Memory - 1);
- if ( v52 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v52 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v52 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v51 = *(Memory - 1);
- }
- j_free(v51);
- }
- v53 = Load_File_To_Ptr(&Memory, "bin/WORD_Indx_#.bin");
- v54 = sub_14089AB00(v2 + 32, v53);
- if ( v82 >= 0x10 )
- {
- v55 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v56 = *(Memory - 1);
- if ( v56 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v56 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v56 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v55 = *(Memory - 1);
- }
- j_free(v55);
- }
- if ( v54 )
- *(v2 + 2) = v2[32] >> 2;
- v57 = Load_File_To_Ptr(&Memory, "bin/WORD_Text_#.bin");
- v58 = sub_14089AB00(v2 + 34, v57);
- if ( v82 >= 0x10 )
- {
- v59 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v60 = *(Memory - 1);
- if ( v60 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v60 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v60 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v59 = *(Memory - 1);
- }
- j_free(v59);
- }
- v61 = 0;
- if ( v58 )
- {
- v62 = v2[34] >> 1;
- v63 = v2[35];
- v64 = 0;
- if ( v62 )
- {
- do
- {
- v65 = *v63;
- if ( (v65 - 65345) <= 0x19 )
- {
- LOWORD(v65) = v65 + 288;
- *v63 = v65;
- }
- if ( v65 - 65313 <= 0x19 )
- *v63 = v65 + 288;
- ++v64;
- ++v63;
- }
- while ( v64 < v62 );
- }
- }
- v66 = Load_File_To_Ptr(&Memory, "bin/DLG_Indx_#.bin");
- v67 = sub_14089AB00(v2 + 12, v66);
- if ( v82 >= 0x10 )
- {
- v68 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v69 = *(Memory - 1);
- if ( v69 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v69 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v69 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v68 = *(Memory - 1);
- }
- j_free(v68);
- }
- if ( v67 )
- *(v2 + 1) = v2[12] >> 2;
- v70 = Load_File_To_Ptr(&Memory, "bin/DLG_Text_#.bin");
- v71 = sub_14089AB00(v2 + 14, v70);
- if ( v82 >= 0x10 )
- {
- v72 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v73 = *(Memory - 1);
- if ( v73 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v73 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v73 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v72 = *(Memory - 1);
- }
- j_free(v72);
- }
- if ( v71 )
- {
- v74 = v2[14] >> 1;
- v75 = v2[15];
- if ( v74 )
- {
- do
- {
- v76 = *v75;
- if ( (v76 - 65345) <= 0x19 )
- {
- LOWORD(v76) = v76 + 288;
- *v75 = v76;
- }
- if ( v76 - 65313 <= 0x19 )
- *v75 = v76 + 288;
- ++v61;
- ++v75;
- }
- while ( v61 < v74 );
- }
- }
- v77 = Load_File_To_Ptr(&Memory, "bin/CARD_Link.bin");
- sub_14089AB00(v2 + 20, v77);
- if ( v82 >= 0x10 )
- {
- v78 = Memory;
- if ( v82 + 1 >= 0x1000 )
- {
- if ( Memory & 0x1F )
- invalid_parameter_noinfo_noreturn();
- v79 = *(Memory - 1);
- if ( v79 >= Memory )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v79 < 8 )
- invalid_parameter_noinfo_noreturn();
- if ( Memory - v79 > 0x27 )
- invalid_parameter_noinfo_noreturn();
- v78 = *(Memory - 1);
- }
- j_free(v78);
- }
- result = sub_1408982D0(v2) != 0;
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement