{"type": "func", "start": 6443747164, "end": 6443747918, "name": "_isindst_nolock", "pseudocode": "// \n// _isindst_nolock from 0x18013c75c to 0x18013ca4e (754 bytes)\n// \n// 2 xrefs:\n// > _isindst @ 0x18013d327\n// > <???> @ 0x180203a28\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\n__int64 __fastcall _isindst_nolock(struct tm *const a1)\n{\n  unsigned int v2; // edi\n  int tm_year; // esi\n  int wMilliseconds; // r14d\n  int wSecond; // r15d\n  int wMinute; // r12d\n  int wHour; // r13d\n  __int64 wMonth; // rbx\n  int v9; // ecx\n  int v10; // eax\n  __int64 v11; // rdx\n  int wDayOfWeek; // ecx\n  int wDay; // r8d\n  int v14; // eax\n  int tm_yday; // eax\n  int v17; // ecx\n  int v18; // [rsp+98h] [rbp+10h] BYREF\n\n  v2 = 0;\n  v18 = 0;\n  if ( (unsigned int)sub_18013C6CC(&v18) )\n    invoke_watson(nullptr, nullptr, nullptr, 0, 0);\n  if ( !v18 )\n    return 0;\n  tm_year = a1->tm_year;\n  if ( tm_year != dword_1801B2140 || tm_year != dword_1801B2150 )\n  {\n    if ( dword_1801F5660 )\n    {\n      if ( TimeZoneInformation.DaylightDate.wYear )\n      {\n        wMilliseconds = TimeZoneInformation.DaylightDate.wMilliseconds;\n        wSecond = TimeZoneInformation.DaylightDate.wSecond;\n        wMinute = TimeZoneInformation.DaylightDate.wMinute;\n        wHour = TimeZoneInformation.DaylightDate.wHour;\n        wMonth = TimeZoneInformation.DaylightDate.wMonth;\n        if ( unknown_libname_67(tm_year) )\n          v9 = dword_18017A634[wMonth];\n        else\n          v9 = dword_18017A5FC[wMonth];\n        dword_1801B2140 = tm_year;\n        dword_1801B2144 = v9 + TimeZoneInformation.DaylightDate.wDay;\n        dword_1801B2148 = wMilliseconds + 1000 * (wSecond + 60 * (wMinute + 60 * wHour));\n      }\n      else\n      {\n        cvtdate(\n          0,\n          1,\n          (unsigned int)tm_year,\n          TimeZoneInformation.DaylightDate.wMonth,\n          TimeZoneInformation.DaylightDate.wDay,\n          TimeZoneInformation.DaylightDate.wDayOfWeek,\n          0,\n          TimeZoneInformation.DaylightDate.wHour,\n          TimeZoneInformation.DaylightDate.wMinute,\n          TimeZoneInformation.DaylightDate.wSecond,\n          TimeZoneInformation.DaylightDate.wMilliseconds);\n      }\n      if ( TimeZoneInformation.StandardDate.wYear )\n      {\n        wDay = TimeZoneInformation.StandardDate.wDay;\n        v11 = 0;\n        v10 = 0;\n        wDayOfWeek = 0;\n      }\n      else\n      {\n        v10 = TimeZoneInformation.StandardDate.wDay;\n        v11 = 1;\n        wDayOfWeek = TimeZoneInformation.StandardDate.wDayOfWeek;\n        wDay = 0;\n      }\n      cvtdate(\n        1,\n        v11,\n        (unsigned int)a1->tm_year,\n        TimeZoneInformation.StandardDate.wMonth,\n        v10,\n        wDayOfWeek,\n        wDay,\n        TimeZoneInformation.StandardDate.wHour,\n        TimeZoneInformation.StandardDate.wMinute,\n        TimeZoneInformation.StandardDate.wSecond,\n        TimeZoneInformation.StandardDate.wMilliseconds);\n    }\n    else\n    {\n      cvtdate(0, 1, (unsigned int)tm_year, (unsigned int)(tm_year < 107) + 3, (tm_year >= 107) + 1, 0, 0, 2, 0, 0, 0);\n      v14 = 5;\n      if ( tm_year >= 107 )\n        v14 = 1;\n      cvtdate(1, 1, (unsigned int)a1->tm_year, (unsigned int)(tm_year >= 107) + 10, v14, 0, 0, 2, 0, 0, 0);\n    }\n  }\n  tm_yday = a1->tm_yday;\n  if ( dword_1801B2144 >= dword_1801B2154 )\n  {\n    if ( tm_yday < dword_1801B2154 || tm_yday > dword_1801B2144 )\n      return 1;\n    if ( tm_yday <= dword_1801B2154 || tm_yday >= dword_1801B2144 )\n      goto LABEL_29;\n    return 0;\n  }\n  if ( tm_yday < dword_1801B2144 || tm_yday > dword_1801B2154 )\n    return 0;\n  if ( tm_yday > dword_1801B2144 && tm_yday < dword_1801B2154 )\n    return 1;\nLABEL_29:\n  v17 = 1000 * (a1->tm_sec + 60 * (a1->tm_min + 60 * a1->tm_hour));\n  if ( tm_yday == dword_1801B2144 )\n    LOBYTE(v2) = v17 >= dword_1801B2148;\n  else\n    LOBYTE(v2) = v17 < dword_1801B2158;\n  return v2;\n}", "assembly": "; \n; _isindst_nolock from 0x18013c75c to 0x18013ca4e (754 bytes)\n; \n; 2 xrefs:\n; > _isindst @ 0x18013d327\n; > <???> @ 0x180203a28\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\nmov     rax, rsp                                                       ; +0x0, 0x18013c75c\nmov     [rax+8], rbx                                                   ; +0x3, 0x18013c75f\nmov     [rax+18h], rbp                                                 ; +0x7, 0x18013c763\nmov     [rax+20h], rsi                                                 ; +0xb, 0x18013c767\npush    rdi                                                            ; +0xf, 0x18013c76b\npush    r12                                                            ; +0x10, 0x18013c76c\npush    r13                                                            ; +0x12, 0x18013c76e\npush    r14                                                            ; +0x14, 0x18013c770\npush    r15                                                            ; +0x16, 0x18013c772\nsub     rsp, 60h                                                       ; +0x18, 0x18013c774\nmov     rbp, rcx                                                       ; +0x1c, 0x18013c778\nxor     edi, edi                                                       ; +0x1f, 0x18013c77b\nlea     rcx, [rax+10h]                                                 ; +0x21, 0x18013c77d\nmov     [rax+10h], edi                                                 ; +0x25, 0x18013c781\ncall    sub_18013C6CC                                                  ; +0x28, 0x18013c784\ntest    eax, eax                                                       ; +0x2d, 0x18013c789\njnz     loc_18013CA39                                                  ; +0x2f, 0x18013c78b\ncmp     [rsp+88h+arg_8], edi                                           ; +0x35, 0x18013c791\njz      loc_18013CA35                                                  ; +0x3c, 0x18013c798\nmov     esi, [rbp+14h]                                                 ; +0x42, 0x18013c79e\nlea     r14d, [rdi+1]                                                  ; +0x45, 0x18013c7a1\ncmp     esi, cs:dword_1801B2140                                        ; +0x49, 0x18013c7a5\njnz     short loc_18013C7B9                                            ; +0x4f, 0x18013c7ab\ncmp     esi, cs:dword_1801B2150                                        ; +0x51, 0x18013c7ad\njz      loc_18013C9A9                                                  ; +0x57, 0x18013c7b3\ncmp     cs:dword_1801F5660, edi                                        ; +0x5d, 0x18013c7b9\njz      loc_18013C922                                                  ; +0x63, 0x18013c7bf\ncmp     cs:TimeZoneInformation.DaylightDate.wYear, di                  ; +0x69, 0x18013c7c5\njnz     short loc_18013C832                                            ; +0x70, 0x18013c7cc\nmovzx   ecx, cs:TimeZoneInformation.DaylightDate.wSecond               ; +0x72, 0x18013c7ce\nmov     r8d, esi                                                       ; +0x79, 0x18013c7d5\nmovzx   edx, cs:TimeZoneInformation.DaylightDate.wMinute               ; +0x7c, 0x18013c7d8\nmovzx   eax, cs:TimeZoneInformation.DaylightDate.wMilliseconds         ; +0x83, 0x18013c7df\nmovzx   r10d, cs:TimeZoneInformation.DaylightDate.wHour                ; +0x8a, 0x18013c7e6\nmovzx   r11d, cs:TimeZoneInformation.DaylightDate.wDayOfWeek           ; +0x92, 0x18013c7ee\nmovzx   ebx, cs:TimeZoneInformation.DaylightDate.wDay                  ; +0x9a, 0x18013c7f6\nmovzx   r9d, cs:TimeZoneInformation.DaylightDate.wMonth                ; +0xa1, 0x18013c7fd\nmov     [rsp+88h+var_38], eax                                          ; +0xa9, 0x18013c805\nmov     [rsp+88h+var_40], ecx                                          ; +0xad, 0x18013c809\nxor     ecx, ecx                                                       ; +0xb1, 0x18013c80d\nmov     [rsp+88h+var_48], edx                                          ; +0xb3, 0x18013c80f\nmov     edx, r14d                                                      ; +0xb7, 0x18013c813\nmov     [rsp+88h+var_50], r10d                                         ; +0xba, 0x18013c816\nmov     [rsp+88h+var_58], edi                                          ; +0xbf, 0x18013c81b\nmov     [rsp+88h+var_60], r11d                                         ; +0xc3, 0x18013c81f\nmov     dword ptr [rsp+88h+Reserved], ebx                              ; +0xc8, 0x18013c824\ncall    ?cvtdate@@YAXW4transition_type@?A0x7639d0b4@@W4date_type@2@HHHHHHHHH@Z ; +0xcc, 0x18013c828\njmp     loc_18013C8B2                                                  ; +0xd1, 0x18013c82d\nmovzx   r14d, cs:TimeZoneInformation.DaylightDate.wMilliseconds        ; +0xd6, 0x18013c832\nmov     ecx, esi                                                       ; +0xde, 0x18013c83a\nmovzx   r15d, cs:TimeZoneInformation.DaylightDate.wSecond              ; +0xe0, 0x18013c83c\nmovzx   r12d, cs:TimeZoneInformation.DaylightDate.wMinute              ; +0xe8, 0x18013c844\nmovzx   r13d, cs:TimeZoneInformation.DaylightDate.wHour                ; +0xf0, 0x18013c84c\nmovzx   ebx, cs:TimeZoneInformation.DaylightDate.wMonth                ; +0xf8, 0x18013c854\ncall    unknown_libname_67; Microsoft VisualC 64bit universal runtime  ; +0xff, 0x18013c85b\ntest    al, al                                                         ; +0x104, 0x18013c860\nlea     rax, cs:180000000h                                             ; +0x106, 0x18013c862\njz      short loc_18013C874                                            ; +0x10d, 0x18013c869\nmov     ecx, ds:rva dword_18017A634[rax+rbx*4]                         ; +0x10f, 0x18013c86b\njmp     short loc_18013C87B                                            ; +0x116, 0x18013c872\nmov     ecx, ds:rva dword_18017A5FC[rax+rbx*4]                         ; +0x118, 0x18013c874\nmovzx   eax, cs:TimeZoneInformation.DaylightDate.wDay                  ; +0x11f, 0x18013c87b\nadd     eax, ecx                                                       ; +0x126, 0x18013c882\nmov     cs:dword_1801B2140, esi                                        ; +0x128, 0x18013c884\nmov     cs:dword_1801B2144, eax                                        ; +0x12e, 0x18013c88a\nimul    eax, r13d, 3Ch ; '<'                                           ; +0x134, 0x18013c890\nadd     eax, r12d                                                      ; +0x138, 0x18013c894\nimul    ecx, eax, 3Ch ; '<'                                            ; +0x13b, 0x18013c897\nadd     ecx, r15d                                                      ; +0x13e, 0x18013c89a\nimul    eax, ecx, 3E8h                                                 ; +0x141, 0x18013c89d\nadd     eax, r14d                                                      ; +0x147, 0x18013c8a3\nmov     r14d, 1                                                        ; +0x14a, 0x18013c8a6\nmov     cs:dword_1801B2148, eax                                        ; +0x150, 0x18013c8ac\ncmp     cs:TimeZoneInformation.StandardDate.wYear, di                  ; +0x156, 0x18013c8b2\nmovzx   r9d, cs:TimeZoneInformation.StandardDate.wMonth                ; +0x15d, 0x18013c8b9\nmovzx   r10d, cs:TimeZoneInformation.StandardDate.wHour                ; +0x165, 0x18013c8c1\nmovzx   r11d, cs:TimeZoneInformation.StandardDate.wMinute              ; +0x16d, 0x18013c8c9\nmovzx   ebx, cs:TimeZoneInformation.StandardDate.wSecond               ; +0x175, 0x18013c8d1\nmovzx   esi, cs:TimeZoneInformation.StandardDate.wMilliseconds         ; +0x17c, 0x18013c8d8\njnz     short loc_18013C8F7                                            ; +0x183, 0x18013c8df\nmovzx   eax, cs:TimeZoneInformation.StandardDate.wDay                  ; +0x185, 0x18013c8e1\nmov     edx, r14d                                                      ; +0x18c, 0x18013c8e8\nmovzx   ecx, cs:TimeZoneInformation.StandardDate.wDayOfWeek            ; +0x18f, 0x18013c8eb\nmov     r8d, edi                                                       ; +0x196, 0x18013c8f2\njmp     short loc_18013C905                                            ; +0x199, 0x18013c8f5\nmovzx   r8d, cs:TimeZoneInformation.StandardDate.wDay                  ; +0x19b, 0x18013c8f7\nmov     edx, edi                                                       ; +0x1a3, 0x18013c8ff\nmov     eax, edi                                                       ; +0x1a5, 0x18013c901\nmov     ecx, edi                                                       ; +0x1a7, 0x18013c903\nmov     [rsp+88h+var_38], esi                                          ; +0x1a9, 0x18013c905\nmov     [rsp+88h+var_40], ebx                                          ; +0x1ad, 0x18013c909\nmov     [rsp+88h+var_48], r11d                                         ; +0x1b1, 0x18013c90d\nmov     [rsp+88h+var_50], r10d                                         ; +0x1b6, 0x18013c912\nmov     [rsp+88h+var_58], r8d                                          ; +0x1bb, 0x18013c917\nmov     [rsp+88h+var_60], ecx                                          ; +0x1c0, 0x18013c91c\njmp     short loc_18013C999                                            ; +0x1c4, 0x18013c920\nmov     [rsp+88h+var_38], edi                                          ; +0x1c6, 0x18013c922\nmov     eax, edi                                                       ; +0x1ca, 0x18013c926\nmov     [rsp+88h+var_40], edi                                          ; +0x1cc, 0x18013c928\nmov     r9d, edi                                                       ; +0x1d0, 0x18013c92c\nmov     [rsp+88h+var_48], edi                                          ; +0x1d3, 0x18013c92f\ncmp     esi, 6Bh ; 'k'                                                 ; +0x1d7, 0x18013c933\nmov     ebx, 2                                                         ; +0x1da, 0x18013c936\nmov     r8d, esi                                                       ; +0x1df, 0x18013c93b\nsetnl   al                                                             ; +0x1e2, 0x18013c93e\nmov     [rsp+88h+var_50], ebx                                          ; +0x1e5, 0x18013c941\nadd     eax, r14d                                                      ; +0x1e9, 0x18013c945\nmov     [rsp+88h+var_58], edi                                          ; +0x1ec, 0x18013c948\ncmp     esi, 6Bh ; 'k'                                                 ; +0x1f0, 0x18013c94c\nmov     [rsp+88h+var_60], edi                                          ; +0x1f3, 0x18013c94f\nmov     edx, r14d                                                      ; +0x1f7, 0x18013c953\nmov     dword ptr [rsp+88h+Reserved], eax                              ; +0x1fa, 0x18013c956\nsetl    r9b                                                            ; +0x1fe, 0x18013c95a\nxor     ecx, ecx                                                       ; +0x202, 0x18013c95e\nadd     r9d, 3                                                         ; +0x204, 0x18013c960\ncall    ?cvtdate@@YAXW4transition_type@?A0x7639d0b4@@W4date_type@2@HHHHHHHHH@Z ; +0x208, 0x18013c964\nmov     [rsp+88h+var_38], edi                                          ; +0x20d, 0x18013c969\nlea     eax, [rbx+3]                                                   ; +0x211, 0x18013c96d\nmov     [rsp+88h+var_40], edi                                          ; +0x214, 0x18013c970\ncmp     esi, 6Bh ; 'k'                                                 ; +0x218, 0x18013c974\nmov     [rsp+88h+var_48], edi                                          ; +0x21b, 0x18013c977\nmov     r9d, edi                                                       ; +0x21f, 0x18013c97b\nmov     [rsp+88h+var_50], ebx                                          ; +0x222, 0x18013c97e\nsetnl   r9b                                                            ; +0x226, 0x18013c982\ncmovge  eax, r14d                                                      ; +0x22a, 0x18013c986\nmov     [rsp+88h+var_58], edi                                          ; +0x22e, 0x18013c98a\nadd     r9d, 0Ah                                                       ; +0x232, 0x18013c98e\nmov     [rsp+88h+var_60], edi                                          ; +0x236, 0x18013c992\nmov     edx, r14d                                                      ; +0x23a, 0x18013c996\nmov     r8d, [rbp+14h]                                                 ; +0x23d, 0x18013c999\nmov     ecx, r14d                                                      ; +0x241, 0x18013c99d\nmov     dword ptr [rsp+88h+Reserved], eax                              ; +0x244, 0x18013c9a0\ncall    ?cvtdate@@YAXW4transition_type@?A0x7639d0b4@@W4date_type@2@HHHHHHHHH@Z ; +0x248, 0x18013c9a4\nmov     r8d, cs:dword_1801B2144                                        ; +0x24d, 0x18013c9a9\nmov     ecx, cs:dword_1801B2154                                        ; +0x254, 0x18013c9b0\nmov     eax, [rbp+1Ch]                                                 ; +0x25a, 0x18013c9b6\ncmp     r8d, ecx                                                       ; +0x25d, 0x18013c9b9\njge     short loc_18013C9F1                                            ; +0x260, 0x18013c9bc\ncmp     eax, r8d                                                       ; +0x262, 0x18013c9be\njl      short loc_18013CA35                                            ; +0x265, 0x18013c9c1\ncmp     eax, ecx                                                       ; +0x267, 0x18013c9c3\njg      short loc_18013CA35                                            ; +0x269, 0x18013c9c5\ncmp     eax, r8d                                                       ; +0x26b, 0x18013c9c7\njle     short loc_18013CA03                                            ; +0x26e, 0x18013c9ca\ncmp     eax, ecx                                                       ; +0x270, 0x18013c9cc\njge     short loc_18013CA03                                            ; +0x272, 0x18013c9ce\nmov     eax, r14d                                                      ; +0x274, 0x18013c9d0\nlea     r11, [rsp+88h+var_28]                                          ; +0x277, 0x18013c9d3\nmov     rbx, [r11+30h]                                                 ; +0x27c, 0x18013c9d8\nmov     rbp, [r11+40h]                                                 ; +0x280, 0x18013c9dc\nmov     rsi, [r11+48h]                                                 ; +0x284, 0x18013c9e0\nmov     rsp, r11                                                       ; +0x288, 0x18013c9e4\npop     r15                                                            ; +0x28b, 0x18013c9e7\npop     r14                                                            ; +0x28d, 0x18013c9e9\npop     r13                                                            ; +0x28f, 0x18013c9eb\npop     r12                                                            ; +0x291, 0x18013c9ed\npop     rdi                                                            ; +0x293, 0x18013c9ef\nretn                                                                   ; +0x294, 0x18013c9f0\ncmp     eax, ecx                                                       ; +0x295, 0x18013c9f1\njl      short loc_18013C9D0                                            ; +0x297, 0x18013c9f3\ncmp     eax, r8d                                                       ; +0x299, 0x18013c9f5\njg      short loc_18013C9D0                                            ; +0x29c, 0x18013c9f8\ncmp     eax, ecx                                                       ; +0x29e, 0x18013c9fa\njle     short loc_18013CA03                                            ; +0x2a0, 0x18013c9fc\ncmp     eax, r8d                                                       ; +0x2a2, 0x18013c9fe\njl      short loc_18013CA35                                            ; +0x2a5, 0x18013ca01\nimul    ecx, [rbp+8], 3Ch ; '<'                                        ; +0x2a7, 0x18013ca03\nadd     ecx, [rbp+4]                                                   ; +0x2ab, 0x18013ca07\nimul    edx, ecx, 3Ch ; '<'                                            ; +0x2ae, 0x18013ca0a\nadd     edx, [rbp+0]                                                   ; +0x2b1, 0x18013ca0d\nimul    ecx, edx, 3E8h                                                 ; +0x2b4, 0x18013ca10\ncmp     eax, r8d                                                       ; +0x2ba, 0x18013ca16\njnz     short loc_18013CA29                                            ; +0x2bd, 0x18013ca19\ncmp     ecx, cs:dword_1801B2148                                        ; +0x2bf, 0x18013ca1b\nsetnl   dil                                                            ; +0x2c5, 0x18013ca21\nmov     eax, edi                                                       ; +0x2c9, 0x18013ca25\njmp     short loc_18013C9D3                                            ; +0x2cb, 0x18013ca27\ncmp     ecx, cs:dword_1801B2158                                        ; +0x2cd, 0x18013ca29\nsetl    dil                                                            ; +0x2d3, 0x18013ca2f\njmp     short loc_18013CA25                                            ; +0x2d7, 0x18013ca33\nxor     eax, eax                                                       ; +0x2d9, 0x18013ca35\njmp     short loc_18013C9D3                                            ; +0x2db, 0x18013ca37\nxor     r9d, r9d; LineNo                                               ; +0x2dd, 0x18013ca39\nmov     [rsp+88h+Reserved], rdi; Reserved                              ; +0x2e0, 0x18013ca3c\nxor     r8d, r8d; FileName                                             ; +0x2e5, 0x18013ca41\nxor     edx, edx; FunctionName                                         ; +0x2e8, 0x18013ca44\nxor     ecx, ecx; Expression                                           ; +0x2ea, 0x18013ca46\ncall    _invoke_watson                                                 ; +0x2ec, 0x18013ca48\ndb 0CCh                                                                ; +0x2f1, 0x18013ca4d", "xrefs": ["_isindst @ 0x18013d327", "<???> @ 0x180203a28"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}