Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char __fastcall Load_Card_Files_To_RAM(const void **a1, int a2)
- {
- char result; // al
- QWORD *CARD_INTID_YGO2_PTR; // rax
- bool VALIDATE_CARD_INTID_YGO2_PTR_SIZE; // si
- void *v6; // rdx
- unsigned __int64 v7; // rax
- QWORD *CARD_INTID_YGO1_PTR; // rax
- bool VALIDATE_CARD_INTID_YGO1_PTR_SIZE; // si
- void *v10; // rdx
- unsigned __int64 v11; // rax
- QWORD *CARD_Same_PTR; // rax
- void *v13; // rcx
- unsigned __int64 v14; // rax
- QWORD *CARD_Prop_PTR; // rax
- bool VALIDATE_CARD_Prop_PTR; // 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 *CARD_Named_PTR; // rax
- void *v33; // rcx
- unsigned __int64 v34; // rax
- _QWORD *CARD_Indx_L_PTR; // rax
- void *v36; // rcx
- unsigned __int64 v37; // rax
- _QWORD *CARD_Name_L_PTR; // rax
- void *v39; // rcx
- unsigned __int64 v40; // rax
- _QWORD *CARD_Desc_L_PTR; // rax
- void *v42; // rcx
- unsigned __int64 v43; // rax
- _QWORD *CARD_Sort_L_PTR; // rax
- void *v45; // rcx
- unsigned __int64 v46; // rax
- _QWORD *CARD_Sort2_L_PTR; // rax
- void *v48; // rcx
- unsigned __int64 v49; // rax
- _QWORD *CARD_Genre_PTR; // rax
- void *v51; // rcx
- unsigned __int64 v52; // rax
- _QWORD *WORD_Indx_L_PTR; // rax
- bool VALIDATE_WORD_Indx_L_PTR; // si
- void *v55; // rdx
- unsigned __int64 v56; // rax
- _QWORD *WORD_Text_L_PTR; // rax
- bool VALIDATE_WORD_Text_L_PTR; // 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 *DLG_Indx_L_PTR; // rax
- bool VALIDATE_DLG_Indx_L_PTR; // r14
- void *v68; // rdx
- unsigned __int64 v69; // rax
- _QWORD *DLG_Text_L_PTR; // rax
- bool VALIDATE_DLG_Text_L_PTR; // r14
- void *v72; // rdx
- unsigned __int64 v73; // rax
- unsigned __int64 v74; // r8
- _WORD *v75; // rdx
- int v76; // ecx
- _QWORD *CARD_Link_PTR; // rax
- void *v78; // rcx
- unsigned __int64 v79; // rax
- void *Memory; // [rsp+30h] [rbp-30h]
- unsigned __int64 v82; // [rsp+48h] [rbp-18h]
- if ( a2 == *a1 )
- return 1;
- *a1 = a2;
- CARD_INTID_YGO2_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_INTID_YGO2.bin");
- VALIDATE_CARD_INTID_YGO2_PTR_SIZE = sub_14089AB00(a1 + 26, CARD_INTID_YGO2_PTR);
- 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 ( VALIDATE_CARD_INTID_YGO2_PTR_SIZE && a1[26] == 17066 )
- memcpy(&unk_140F7F220, a1[27], 0x42AAui64);
- CARD_INTID_YGO1_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_INTID_YGO1.bin");
- VALIDATE_CARD_INTID_YGO1_PTR_SIZE = sub_14089AB00(a1 + 28, CARD_INTID_YGO1_PTR);
- 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 ( VALIDATE_CARD_INTID_YGO1_PTR_SIZE && a1[28] == 15504 )
- memcpy(&unk_140E873D0, a1[29], 0x3C90ui64);
- CARD_Same_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Same.bin");
- sub_14089AB00(a1 + 22, CARD_Same_PTR);
- 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);
- }
- CARD_Prop_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Prop.bin");
- VALIDATE_CARD_Prop_PTR = sub_14089AB00(a1 + 16, CARD_Prop_PTR);
- 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 ( VALIDATE_CARD_Prop_PTR )
- {
- v19 = a1[17];
- memset(&unk_141019880, 0, 0x91B30ui64);
- v20 = &unk_140FC0B10;
- memset(&unk_140FC0B10, 0, 0x58D70ui64);
- v21 = (a1[22] * 0xAAAAAAAAAAAAAAABui64 >> 64) >> 2;
- v22 = a1[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 );
- sub_14089AB40(a1 + 16, v26, v27, 0x3FFFi64);
- }
- result = sub_140898180();
- if ( result )
- {
- CARD_Named_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Named.bin");
- sub_14089AB00(a1 + 24, CARD_Named_PTR);
- 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);
- }
- CARD_Indx_L_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Indx_#.bin");
- sub_14089AB00(a1 + 4, CARD_Indx_L_PTR);
- 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);
- }
- CARD_Name_L_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Name_#.bin");
- sub_14089AB00(a1 + 2, CARD_Name_L_PTR);
- 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);
- }
- CARD_Desc_L_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Desc_#.bin");
- sub_14089AB00(a1 + 6, CARD_Desc_L_PTR);
- 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);
- }
- CARD_Sort_L_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Sort_#.bin");
- sub_14089AB00(a1 + 8, CARD_Sort_L_PTR);
- 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);
- }
- CARD_Sort2_L_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Sort2_#.bin");
- sub_14089AB00(a1 + 10, CARD_Sort2_L_PTR);
- 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);
- }
- CARD_Genre_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Genre.bin");
- sub_14089AB00(a1 + 18, CARD_Genre_PTR);
- 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);
- }
- WORD_Indx_L_PTR = Load_File_To_Ptr(&Memory, "bin/WORD_Indx_#.bin");
- VALIDATE_WORD_Indx_L_PTR = sub_14089AB00(a1 + 32, WORD_Indx_L_PTR);
- 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 ( VALIDATE_WORD_Indx_L_PTR )
- *(a1 + 2) = a1[32] >> 2;
- WORD_Text_L_PTR = Load_File_To_Ptr(&Memory, "bin/WORD_Text_#.bin");
- VALIDATE_WORD_Text_L_PTR = sub_14089AB00(a1 + 34, WORD_Text_L_PTR);
- 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 ( VALIDATE_WORD_Text_L_PTR )
- {
- v62 = a1[34] >> 1;
- v63 = a1[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 );
- }
- }
- DLG_Indx_L_PTR = Load_File_To_Ptr(&Memory, "bin/DLG_Indx_#.bin");
- VALIDATE_DLG_Indx_L_PTR = sub_14089AB00(a1 + 12, DLG_Indx_L_PTR);
- 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 ( VALIDATE_DLG_Indx_L_PTR )
- *(a1 + 1) = a1[12] >> 2;
- DLG_Text_L_PTR = Load_File_To_Ptr(&Memory, "bin/DLG_Text_#.bin");
- VALIDATE_DLG_Text_L_PTR = sub_14089AB00(a1 + 14, DLG_Text_L_PTR);
- 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 ( VALIDATE_DLG_Text_L_PTR )
- {
- v74 = a1[14] >> 1;
- v75 = a1[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 );
- }
- }
- CARD_Link_PTR = Load_File_To_Ptr(&Memory, "bin/CARD_Link.bin");
- sub_14089AB00(a1 + 20, CARD_Link_PTR);
- 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(a1) != 0;
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement