trngaje / SDL_drastic

Simple Directmedia Layer
https://libsdl.org
zlib License
2 stars 0 forks source link

hook create_menu_options( #3

Open trngaje opened 3 months ago

trngaje commented 3 months ago
code ** create_menu_options(long param_1,code *param_2)

{
  int iVar1;
  undefined4 uVar2;
  code **ppcVar3;
  undefined8 *puVar4;
  char **ppcVar5;
  char **ppcVar6;
  char **ppcVar7;
  long lVar8;

  lVar8 = *(long *)(param_1 + 8);
  ppcVar3 = (code **)malloc(0x30);
  *(undefined8 *)((long)ppcVar3 + 0x14) = 0x19;
  *ppcVar3 = draw_menu_options;
  ppcVar3[1] = focus_menu_none;
  ppcVar3[5] = param_2;
  puVar4 = (undefined8 *)malloc(200);
  ppcVar3[4] = (code *)puVar4;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Frame skip type        ";
  *(undefined4 *)(ppcVar6 + 1) = 0x1e;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x440);
  ppcVar7[7] = (char *)0x200000000;
  *puVar4 = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = frameskip_labels.11546;
  ppcVar5 = (char **)malloc(0x40);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x30);
  }
  *(undefined4 *)(ppcVar7 + 1) = 0x1f;
  *ppcVar7 = "Frame skip value                   ";
  ppcVar7[2] = (char *)draw_numeric;
  ppcVar7[3] = (char *)action_numeric;
  ppcVar7[4] = (char *)0x0;
  ppcVar7[5] = (char *)0x0;
  ppcVar5[6] = (char *)(lVar8 + 0x444);
  ppcVar5[7] = (char *)0x900000001;
  puVar4[1] = ppcVar5;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Safe frame skipping    ";
  *(undefined4 *)(ppcVar6 + 1) = 0x20;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x4a8);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[2] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Screen orientation     ";
  *(undefined4 *)(ppcVar6 + 1) = 0x22;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(param_1 + 0x50);
  ppcVar7[7] = (char *)0x200000000;
  puVar4[3] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = orientation_labels.11547;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Screen swap            ";
  *(undefined4 *)(ppcVar6 + 1) = 0x23;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x454);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[4] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Show speed             ";
  *(undefined4 *)(ppcVar6 + 1) = 0x24;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x448);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[5] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Enable sound           ";
  *(undefined4 *)(ppcVar6 + 1) = 0x25;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x460);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[6] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Fast forward           ";
  *(undefined4 *)(ppcVar6 + 1) = 0x26;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x45c);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[7] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Mirror touchscreen     ";
  *(undefined4 *)(ppcVar6 + 1) = 0x27;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x46c);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[8] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Compress savestates    ";
  *(undefined4 *)(ppcVar6 + 1) = 0x28;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x470);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[9] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Snapshot in savestates ";
  *(undefined4 *)(ppcVar6 + 1) = 0x29;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x474);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[10] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Enable cheats          ";
  *(undefined4 *)(ppcVar6 + 1) = 0x2a;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x478);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[0xb] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Uncompress ROMs        ";
  *(undefined4 *)(ppcVar6 + 1) = 0x2b;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x47c);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[0xc] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Backup in savestates   ";
  *(undefined4 *)(ppcVar6 + 1) = 0x2c;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x480);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[0xd] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Speed override         ";
  *(undefined4 *)(ppcVar6 + 1) = 0x2d;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(param_1 + 0x54);
  ppcVar7[7] = (char *)0x700000000;
  puVar4[0xe] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = speed_override_labels.11550;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Fix main 2D screen     ";
  *(undefined4 *)(ppcVar6 + 1) = 0x2e;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x494);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[0xf] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Disable edge marking   ";
  *(undefined4 *)(ppcVar6 + 1) = 0x2f;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x498);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[0x10] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Slot 2 Device          ";
  *(undefined4 *)(ppcVar6 + 1) = 0x30;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x4ac);
  ppcVar7[7] = (char *)0x300000000;
  puVar4[0x11] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = slot2_device_type_labels.11551;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "High-resolution 3D     ";
  *(undefined4 *)(ppcVar6 + 1) = 0x31;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x49c);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[0x12] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x48);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x40);
  }
  ppcVar6 = ppcVar7;
  if (ppcVar7 == (char **)0x0) {
    ppcVar6 = (char **)malloc(0x30);
  }
  *ppcVar6 = "Threaded 3D            ";
  *(undefined4 *)(ppcVar6 + 1) = 0x32;
  ppcVar6[2] = (char *)draw_numeric;
  ppcVar6[3] = (char *)action_numeric;
  ppcVar6[4] = (char *)0x0;
  ppcVar6[5] = (char *)0x0;
  ppcVar7[6] = (char *)(lVar8 + 0x468);
  ppcVar7[7] = (char *)0x100000000;
  puVar4[0x13] = ppcVar5;
  ppcVar5[2] = (char *)draw_numeric_labeled;
  ppcVar5[8] = yes_no_labels.11545;
  ppcVar5 = (char **)malloc(0x38);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x30);
  }
  *ppcVar7 = "Delete game-specific config";
  *(undefined4 *)(ppcVar7 + 1) = 0x34;
  ppcVar7[2] = (char *)draw_menu_option;
  ppcVar7[3] = (char *)action_select;
  ppcVar7[4] = (char *)0x0;
  ppcVar7[5] = (char *)0x0;
  puVar4[0x14] = ppcVar5;
  ppcVar5[6] = (char *)select_delete_config_local;
  ppcVar5 = (char **)malloc(0x38);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x30);
  }
  *ppcVar7 = "Exit: save for all games";
  *(undefined4 *)(ppcVar7 + 1) = 0x36;
  ppcVar7[2] = (char *)draw_menu_option;
  ppcVar7[3] = (char *)action_select;
  ppcVar7[4] = (char *)0x0;
  ppcVar7[5] = (char *)0x0;
  puVar4[0x15] = ppcVar5;
  ppcVar5[6] = (char *)select_save_config_global;
  ppcVar5 = (char **)malloc(0x38);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x30);
  }
  *ppcVar7 = "Exit: save for this game";
  *(undefined4 *)(ppcVar7 + 1) = 0x37;
  ppcVar7[2] = (char *)draw_menu_option;
  ppcVar7[3] = (char *)action_select;
  ppcVar7[4] = (char *)0x0;
  ppcVar7[5] = (char *)0x0;
  puVar4[0x16] = ppcVar5;
  ppcVar5[6] = (char *)select_save_config_local;
  ppcVar5 = (char **)malloc(0x38);
  ppcVar7 = ppcVar5;
  if (ppcVar5 == (char **)0x0) {
    ppcVar7 = (char **)malloc(0x30);
  }
  iVar1 = *(int *)(param_1 + 0x40);
  *ppcVar7 = "Exit without saving";
  *(undefined4 *)(ppcVar7 + 1) = 0x38;
  ppcVar7[2] = (char *)draw_menu_option;
  ppcVar7[3] = (char *)action_select;
  ppcVar7[4] = (char *)0x0;
  ppcVar7[5] = (char *)0x0;
  puVar4[0x17] = ppcVar5;
  uVar2 = 0x5c;
  if (iVar1 == 0) {
    uVar2 = 0x100;
  }
  *(undefined4 *)(ppcVar3 + 2) = uVar2;
  *(undefined4 *)((long)ppcVar3 + 0x14) = 0x18;
  ppcVar5[6] = (char *)select_exit_current_menu;
  return ppcVar3;
}
trngaje commented 2 months ago

(undefined4 )((long)ppcVar3 + 0x14) = 0x18; 이게 메뉴 갯수인가?