Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- evdate_t decode_date(evdate_t param_1)
- {
- uint uVar1;
- ushort uVar2;
- undefined uVar3;
- int iVar4;
- undefined uVar5;
- evdate_t local_18;
- undefined4 local_14;
- local_18 = param_1;
- if ((int)param_1 >> 0x18 == 50) {
- local_18 = (evdate_t)((uint)param_1 & 0xffffff | (uint)DAT_80160f21 << 0x18);
- }
- iVar4 = (int)local_18 >> 0x18;
- if (((int)local_18 << 8) >> 0x18 == 99) {
- uVar1 = FUN_80088a84(iVar4);
- local_18 = (evdate_t)((uint)local_18 & 0xff00ffff | (uVar1 & 0xff) << 0x10);
- iVar4 = (int)local_18 >> 0x18;
- }
- if (99 < iVar4) {
- local_18 = (evdate_t)((uint)local_18 & 0xffff | (uint)*(ushort *)(&DAT_8015fc44 + (iVar4 + -100) * 2) << 0x10);
- }
- if (((uint)local_18 & 0x20) != 0) {
- local_18 = (evdate_t)((uint)local_18 & 0xffffff00 | (uint)*(byte *)(((uint)local_18 & 0x1f) * 2 + -0x7fea03bb) | (uint)local_18 & 0xc0);
- }
- if ((int)local_18 >> 0x18 < 0x50) goto LAB_8008a3b4;
- local_18 = (evdate_t)((uint)local_18 & 0xffffff | (((int)local_18 >> 0x18) + -0x50) * 0x1000000);
- if ((int)local_18 >> 0x18 < 0xd) {
- uVar2 = FUN_80088a38(&local_18);
- local_18 = (evdate_t)((uint)local_18 & 0xffff | (uint)uVar2 << 0x10);
- goto LAB_8008a3b4;
- }
- local_14 = local_14 & 0xffff | 0x1010000;
- uVar2 = FUN_80088a38(&local_14);
- uVar1 = (uint)uVar2 << 0x10;
- local_14 = local_14 & 0xffff | uVar1;
- local_14._1_1_ = (char)uVar2;
- if (local_18.day == 30) {
- uVar3 = 0x1f;
- if (uVar2 != 0x201) {
- local_18 = (evdate_t)(uVar1 & 0xff000000 | (uint)CONCAT12(local_14._1_1_ + -1,local_18._2_2_));
- goto LAB_8008a3b4;
- }
- uVar5 = 1;
- }
- else {
- if (local_18.day == 0x1d) {
- if (uVar2 == 0x202) {
- local_18._1_3_ = CONCAT12(0x1f,local_18._2_2_);
- local_18 = (evdate_t)CONCAT13(1,local_18._1_3_);
- }
- else if (uVar2 == 0x201) {
- local_18._1_3_ = CONCAT12(30,local_18._2_2_);
- local_18 = (evdate_t)CONCAT13(1,local_18._1_3_);
- }
- else {
- local_18 = (evdate_t)(uVar1 & 0xff000000 | (uint)CONCAT12(local_14._1_1_ + -2,local_18._2_2_));
- }
- goto LAB_8008a3b4;
- }
- if (local_18.day != 0x19) goto LAB_8008a3b4;
- if (uVar2 == 0x205) {
- uVar3 = 0x1f;
- uVar5 = 1;
- }
- else {
- if (uVar2 == 0x204) {
- uVar3 = 1;
- LAB_8008a354:
- local_18._1_3_ = CONCAT12(30,local_18._2_2_);
- local_18 = (evdate_t)CONCAT13(uVar3,local_18._1_3_);
- goto LAB_8008a3b4;
- }
- if (uVar2 == 0x203) {
- uVar3 = 1;
- LAB_8008a36c:
- local_18._1_3_ = CONCAT12(0x1d,local_18._2_2_);
- local_18 = (evdate_t)CONCAT13(uVar3,local_18._1_3_);
- goto LAB_8008a3b4;
- }
- if (uVar2 == 0x202) {
- uVar3 = 0x1c;
- uVar5 = 1;
- }
- else if (uVar2 == 0x201) {
- uVar3 = 0x1b;
- uVar5 = 1;
- }
- else {
- if (uVar2 == 0x105) {
- uVar3 = 0x1f;
- }
- else {
- if (uVar2 == 0x104) {
- uVar3 = 0xc;
- goto LAB_8008a354;
- }
- if (uVar2 == 0x103) {
- uVar3 = 0xc;
- goto LAB_8008a36c;
- }
- if (uVar2 == 0x102) {
- uVar3 = 0x1c;
- }
- else {
- uVar3 = 0x1b;
- if (uVar2 != 0x101) {
- local_18 = (evdate_t)(uVar1 & 0xff000000 | (uint)CONCAT12(local_14._1_1_ + -5,local_18._2_2_));
- goto LAB_8008a3b4;
- }
- }
- }
- uVar5 = 0xc;
- }
- }
- }
- local_18._1_3_ = CONCAT12(uVar3,local_18._2_2_);
- local_18 = (evdate_t)CONCAT13(uVar5,local_18._1_3_);
- LAB_8008a3b4:
- iVar4 = ((uint)local_18 >> 0x10) << 0x18;
- if (iVar4 < 0) {
- uVar3 = FUN_80088f78((int)local_18.month,iVar4 >> 0x18);
- local_18._1_3_ = CONCAT12(uVar3,local_18._2_2_);
- local_18 = (evdate_t)((uint)local_18 & 0xff000000 | (uint)local_18._1_3_);
- }
- return local_18;
- }
Advertisement
Add Comment
Please, Sign In to add comment