{"type": "func", "start": 6443633784, "end": 6443634089, "name": "dllmain_dispatch", "pseudocode": "// \n// dllmain_dispatch from 0x180120c78 to 0x180120da9 (305 bytes)\n// \n// 4 xrefs:\n// > dllmain_crt_process_detach @ 0x180120c77\n// > DllEntryPoint @ 0x180120de4\n// > <???> @ 0x180202588\n// > <???> @ 0x180202594\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 dllmain_dispatch(Concurrency::details::ScheduleGroupSegmentBase *a1, DWORD a2, void *const a3)\n{\n  unsigned int v7; // ebx\n  BOOL v8; // eax\n\n  if ( !a2 && dword_1801F4A2C <= 0 )\n    return 0;\n  if ( a2 - 1 > 1 || (v7 = dllmain_crt_dispatch(a1, a2, a3)) != 0 )\n  {\n    v8 = DllMain((HINSTANCE)a1, a2, a3);\n    v7 = v8;\n    if ( a2 == 1 && !v8 )\n    {\n      DllMain((HINSTANCE)a1, 0, a3);\n      dllmain_crt_process_detach(a3 != nullptr);\n    }\n    if ( !a2 || a2 == 3 )\n      return (unsigned int)dllmain_crt_dispatch(a1, a2, a3) != 0;\n  }\n  return v7;\n}", "assembly": "; \n; dllmain_dispatch from 0x180120c78 to 0x180120da9 (305 bytes)\n; \n; 4 xrefs:\n; > dllmain_crt_process_detach @ 0x180120c77\n; > DllEntryPoint @ 0x180120de4\n; > <???> @ 0x180202588\n; > <???> @ 0x180202594\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, 0x180120c78\nmov     [rax+20h], rbx                                                 ; +0x3, 0x180120c7b\nmov     [rax+18h], r8                                                  ; +0x7, 0x180120c7f\nmov     [rax+10h], edx                                                 ; +0xb, 0x180120c83\nmov     [rax+8], rcx                                                   ; +0xe, 0x180120c86\npush    rsi                                                            ; +0x12, 0x180120c8a\npush    rdi                                                            ; +0x13, 0x180120c8b\npush    r14                                                            ; +0x14, 0x180120c8c\nsub     rsp, 40h                                                       ; +0x16, 0x180120c8e\nmov     rsi, r8                                                        ; +0x1a, 0x180120c92\nmov     edi, edx                                                       ; +0x1d, 0x180120c95\nmov     r14, rcx                                                       ; +0x1f, 0x180120c97\ntest    edx, edx                                                       ; +0x22, 0x180120c9a\njnz     short loc_180120CAD                                            ; +0x24, 0x180120c9c\ncmp     cs:dword_1801F4A2C, edx                                        ; +0x26, 0x180120c9e\njg      short loc_180120CAD                                            ; +0x2c, 0x180120ca4\nxor     eax, eax                                                       ; +0x2e, 0x180120ca6\njmp     loc_180120D9B                                                  ; +0x30, 0x180120ca8\nlea     eax, [rdx-1]                                                   ; +0x35, 0x180120cad\ncmp     eax, 1                                                         ; +0x38, 0x180120cb0\nja      short loc_180120CFA                                            ; +0x3b, 0x180120cb3\nmov     rax, cs:qword_18016FC28                                        ; +0x3d, 0x180120cb5\ntest    rax, rax                                                       ; +0x44, 0x180120cbc\njnz     short loc_180120CCB                                            ; +0x47, 0x180120cbf\nmov     [rsp+58h+var_28], 1                                            ; +0x49, 0x180120cc1\njmp     short loc_180120CDF                                            ; +0x51, 0x180120cc9\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x53, 0x180120ccb\nmov     ebx, eax                                                       ; +0x59, 0x180120cd1\nmov     [rsp+58h+var_28], eax                                          ; +0x5b, 0x180120cd3\ntest    eax, eax                                                       ; +0x5f, 0x180120cd7\njz      loc_180120D91                                                  ; +0x61, 0x180120cd9\nmov     r8, rsi; void *                                                ; +0x67, 0x180120cdf\nmov     edx, edi; unsigned int                                         ; +0x6a, 0x180120ce2\nmov     rcx, r14; HINSTANCE                                            ; +0x6c, 0x180120ce4\ncall    ?dllmain_crt_dispatch@@YAHQEAUHINSTANCE__@@KQEAX@Z             ; +0x6f, 0x180120ce7\nmov     ebx, eax                                                       ; +0x74, 0x180120cec\nmov     [rsp+58h+var_28], eax                                          ; +0x76, 0x180120cee\ntest    eax, eax                                                       ; +0x7a, 0x180120cf2\njz      loc_180120D91                                                  ; +0x7c, 0x180120cf4\nmov     r8, rsi; lpvReserved                                           ; +0x82, 0x180120cfa\nmov     edx, edi; fdwReason                                            ; +0x85, 0x180120cfd\nmov     rcx, r14; hinstDLL                                             ; +0x87, 0x180120cff\ncall    DllMain                                                        ; +0x8a, 0x180120d02\nmov     ebx, eax                                                       ; +0x8f, 0x180120d07\nmov     [rsp+58h+var_28], eax                                          ; +0x91, 0x180120d09\ncmp     edi, 1                                                         ; +0x95, 0x180120d0d\njnz     short loc_180120D48                                            ; +0x98, 0x180120d10\ntest    eax, eax                                                       ; +0x9a, 0x180120d12\njnz     short loc_180120D48                                            ; +0x9c, 0x180120d14\nmov     r8, rsi; lpvReserved                                           ; +0x9e, 0x180120d16\nxor     edx, edx; fdwReason                                            ; +0xa1, 0x180120d19\nmov     rcx, r14; hinstDLL                                             ; +0xa3, 0x180120d1b\ncall    DllMain                                                        ; +0xa6, 0x180120d1e\ntest    rsi, rsi                                                       ; +0xab, 0x180120d23\nsetnz   cl; bool                                                       ; +0xae, 0x180120d26\ncall    ?dllmain_crt_process_detach@@YAH_N@Z                           ; +0xb1, 0x180120d29\nmov     rax, cs:qword_18016FC28                                        ; +0xb6, 0x180120d2e\ntest    rax, rax                                                       ; +0xbd, 0x180120d35\njz      short loc_180120D48                                            ; +0xc0, 0x180120d38\nmov     r8, rsi                                                        ; +0xc2, 0x180120d3a\nxor     edx, edx                                                       ; +0xc5, 0x180120d3d\nmov     rcx, r14                                                       ; +0xc7, 0x180120d3f\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0xca, 0x180120d42\ntest    edi, edi                                                       ; +0xd0, 0x180120d48\njz      short loc_180120D51                                            ; +0xd2, 0x180120d4a\ncmp     edi, 3                                                         ; +0xd4, 0x180120d4c\njnz     short loc_180120D91                                            ; +0xd7, 0x180120d4f\nmov     r8, rsi; void *                                                ; +0xd9, 0x180120d51\nmov     edx, edi; unsigned int                                         ; +0xdc, 0x180120d54\nmov     rcx, r14; HINSTANCE                                            ; +0xde, 0x180120d56\ncall    ?dllmain_crt_dispatch@@YAHQEAUHINSTANCE__@@KQEAX@Z             ; +0xe1, 0x180120d59\nmov     ebx, eax                                                       ; +0xe6, 0x180120d5e\nmov     [rsp+58h+var_28], eax                                          ; +0xe8, 0x180120d60\ntest    eax, eax                                                       ; +0xec, 0x180120d64\njz      short loc_180120D91                                            ; +0xee, 0x180120d66\nmov     rax, cs:qword_18016FC28                                        ; +0xf0, 0x180120d68\ntest    rax, rax                                                       ; +0xf7, 0x180120d6f\njnz     short loc_180120D7D                                            ; +0xfa, 0x180120d72\nlea     ebx, [rax+1]                                                   ; +0xfc, 0x180120d74\nmov     [rsp+58h+var_28], ebx                                          ; +0xff, 0x180120d77\njmp     short loc_180120D91                                            ; +0x103, 0x180120d7b\nmov     r8, rsi                                                        ; +0x105, 0x180120d7d\nmov     edx, edi                                                       ; +0x108, 0x180120d80\nmov     rcx, r14                                                       ; +0x10a, 0x180120d82\ncall    cs:__guard_dispatch_icall_fptr                                 ; +0x10d, 0x180120d85\nmov     ebx, eax                                                       ; +0x113, 0x180120d8b\nmov     [rsp+58h+var_28], eax                                          ; +0x115, 0x180120d8d\njmp     short loc_180120D99                                            ; +0x119, 0x180120d91\nxor     ebx, ebx                                                       ; +0x11b, 0x180120d93\nmov     [rsp+58h+var_28], ebx                                          ; +0x11d, 0x180120d95\nmov     eax, ebx                                                       ; +0x121, 0x180120d99\nmov     rbx, [rsp+58h+arg_18]                                          ; +0x123, 0x180120d9b\nadd     rsp, 40h                                                       ; +0x128, 0x180120da0\npop     r14                                                            ; +0x12c, 0x180120da4\npop     rdi                                                            ; +0x12e, 0x180120da6\npop     rsi                                                            ; +0x12f, 0x180120da7\nretn                                                                   ; +0x130, 0x180120da8", "xrefs": ["dllmain_crt_process_detach @ 0x180120c77", "DllEntryPoint @ 0x180120de4", "<???> @ 0x180202588", "<???> @ 0x180202594"], "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"}