I changed the offsets to 1.04d, but I didn't test.
#define CNewUIObj ((void *(__thiscall*)(void *This)) 0x00776B70)
#define CNewUIButton ((int(__thiscall*)(int This)) 0x00779000)
#define sub_9CF893 ((int(__stdcall*)(int a1, int a2, int a3, void(__thiscall *a4)(DWORD), int a5)) 0x009CF893)
#define cCNewUIButton ((void *(__thiscall*)(int This)) 0x00779100)
#define RGBA ((DWORD(__cdecl*)(BYTE, BYTE, BYTE, BYTE)) 0x00412D20)
#define pCNewUIEnterBloodCastle 0xD496F8
#define pCNewUIEnterDevilSquare 0xD499B0
void *__fastcall CNewUIEnterBloodCastle(void *This)
{
CNewUIObj(This);
*(DWORD *)This = pCNewUIEnterBloodCastle;
CNewUIButton((int)((char *)This + 40));
sub_9CF893((int)((char *)This + 212), 172, 8, (void(__thiscall *)(DWORD))CNewUIButton, (int)cCNewUIButton);
*((DWORD *)This + 3) = 0;
memset(This + 16, 0, 8);
memset(This + 32, 0, 8);
*((DWORD *)This + 429) = 1;
*((DWORD *)This + 7) = 0;
*((DWORD *)This + 6) = 0;
*((DWORD *)This + 430) = RGBA(0x96u, 0x96u, 0x96u, 150); //Not enter text color
*((DWORD *)This + 431) = RGBA(0xFFu, 0xFFu, 0xFFu, 0xFFu); //Enter text color
*((DWORD *)This + 397) = 15; //BC 1 Min level [NORMAL]
*((DWORD *)This + 398) = 80; //BC 1 Max level [NORMAL]
*((DWORD *)This + 399) = 81; //BC 2 Min level [NORMAL]
*((DWORD *)This + 400) = 130; //BC 2 Max level [NORMAL]
*((DWORD *)This + 401) = 131; //BC 3 Min level [NORMAL]
*((DWORD *)This + 402) = 180; //BC 3 Max level [NORMAL]
*((DWORD *)This + 403) = 181; //BC 4 Min level [NORMAL]
*((DWORD *)This + 404) = 230; //BC 4 Max level [NORMAL]
*((DWORD *)This + 405) = 231; //BC 5 Min level [NORMAL]
*((DWORD *)This + 406) = 280; //BC 5 Max level [NORMAL]
*((DWORD *)This + 407) = 281; //BC 6 Min level [NORMAL]
*((DWORD *)This + 408) = 330; //BC 6 Max level [NORMAL]
*((DWORD *)This + 409) = 331; //BC 7 Min level [NORMAL]
*((DWORD *)This + 410) = 400; //BC 7 Max level [NORMAL]
*((DWORD *)This + 411) = 0;
*((DWORD *)This + 412) = 0;
*((DWORD *)This + 413) = 10; //BC 1 Min level [MAGUMSA]
*((DWORD *)This + 414) = 60; //BC 1 Max level [MAGUMSA]
*((DWORD *)This + 415) = 61; //BC 2 Min level [MAGUMSA]
*((DWORD *)This + 416) = 110; //BC 2 Max level [MAGUMSA]
*((DWORD *)This + 417) = 111; //BC 3 Min level [MAGUMSA]
*((DWORD *)This + 418) = 160; //BC 3 Max level [MAGUMSA]
*((DWORD *)This + 419) = 161; //BC 4 Min level [MAGUMSA]
*((DWORD *)This + 420) = 210; //BC 4 Max level [MAGUMSA]
*((DWORD *)This + 421) = 211; //BC 5 Min level [MAGUMSA]
*((DWORD *)This + 422) = 260; //BC 5 Max level [MAGUMSA]
*((DWORD *)This + 423) = 261; //BC 6 Min level [MAGUMSA]
*((DWORD *)This + 424) = 310; //BC 6 Max level [MAGUMSA]
*((DWORD *)This + 425) = 311; //BC 7 Min level [MAGUMSA]
*((DWORD *)This + 426) = 400; //BC 7 Max level [MAGUMSA]
*((DWORD *)This + 427) = 0;
*((DWORD *)This + 428) = 0;
return This;
}
void * __fastcall CNewUIEnterDevilSquare(void *This)
{
CNewUIObj(This);
*(DWORD *)This = pCNewUIEnterDevilSquare;
CNewUIButton((int)((char *)This + 10));
sub_9CF893((int)((char *)This + 53), 172, 7, (void(__thiscall *)(DWORD))CNewUIButton, (int)cCNewUIButton);
*((DWORD *)This + 3) = 0;
memset((char *)This + 4, 0, 8);
memset((char *)This + 8, 0, 8);
*((DWORD *)This + 382) = 1;
*((DWORD *)This + 7) = 0;
*((DWORD *)This + 6) = 0;
*((DWORD *)This + 383) = RGBA(0x96u, 0x96u, 0x96u, 150); //Not enter text color
*((DWORD *)This + 384) = RGBA(0xFFu, 0xFFu, 0xFFu, 0xFFu); //Enter text color
*((DWORD *)This + 354) = 15; //DS 1 Min level [NORMAL]
*((DWORD *)This + 355) = 130; //DS 1 Max level [NORMAL]
*((DWORD *)This + 356) = 131; //DS 2 Min level [NORMAL]
*((DWORD *)This + 357) = 180; //DS 2 Max level [NORMAL]
*((DWORD *)This + 358) = 181; //DS 3 Min level [NORMAL]
*((DWORD *)This + 359) = 230; //DS 3 Max level [NORMAL]
*((DWORD *)This + 360) = 231; //DS 4 Min level [NORMAL]
*((DWORD *)This + 361) = 280; //DS 4 Max level [NORMAL]
*((DWORD *)This + 362) = 281; //DS 5 Min level [NORMAL]
*((DWORD *)This + 363) = 330; //DS 5 Max level [NORMAL]
*((DWORD *)This + 364) = 331; //DS 6 Min level [NORMAL]
*((DWORD *)This + 365) = 400; //DS 6 Max level [NORMAL]
*((DWORD *)This + 366) = 0;
*((DWORD *)This + 367) = 0;
*((DWORD *)This + 368) = 15; //DS 1 Min level [MAGUMSA]
*((DWORD *)This + 369) = 110; //DS 1 Max level [MAGUMSA]
*((DWORD *)This + 370) = 111; //DS 2 Min level [MAGUMSA]
*((DWORD *)This + 371) = 160; //DS 2 Max level [MAGUMSA]
*((DWORD *)This + 372) = 161; //DS 3 Min level [MAGUMSA]
*((DWORD *)This + 373) = 210; //DS 3 Max level [MAGUMSA]
*((DWORD *)This + 374) = 211; //DS 4 Min level [MAGUMSA]
*((DWORD *)This + 375) = 260; //DS 4 Max level [MAGUMSA]
*((DWORD *)This + 376) = 261; //DS 5 Min level [MAGUMSA]
*((DWORD *)This + 377) = 310; //DS 5 Max level [MAGUMSA]
*((DWORD *)This + 378) = 311; //DS 6 Min level [MAGUMSA]
*((DWORD *)This + 379) = 400; //DS 6 Max level [MAGUMSA]
*((DWORD *)This + 380) = 0;
*((DWORD *)This + 381) = 0;
return This;
}
SetOp(0x0085AEBD, CNewUIEnterBloodCastle, ASM::CALL); //New BC level config
SetOp(0x0085AF4B, CNewUIEnterDevilSquare, ASM::CALL); //New DS level config