{"type": "func", "start": 6443240272, "end": 6443240398, "name": "FMOD_OS_CriticalSection_Create", "pseudocode": "// \n// FMOD_OS_CriticalSection_Create from 0x1800c0b50 to 0x1800c0bce (126 bytes)\n// \n// 24 xrefs:\n// > sub_1800B2E30 @ 0x1800b2f46\n// > sub_1800B6530 @ 0x1800b658b\n// > sub_1800B6AA0 @ 0x1800b6ace\n// > sub_1800B6C70 @ 0x1800b6d4d\n// > sub_1800B6E80 @ 0x1800b6f11\n// > sub_1800C23B0 @ 0x1800c250f\n// > sub_1800C6FD0 @ 0x1800c709d\n// > sub_1800D11B0 @ 0x1800d11e0\n// > sub_1800D11B0 @ 0x1800d11fd\n// > sub_1800D45C0 @ 0x1800d45d7\n// > sub_1800D45C0 @ 0x1800d45e9\n// > sub_1800D45C0 @ 0x1800d45fb\n// > sub_1800D9EB0 @ 0x1800d9f92\n// > sub_1800E4E00 @ 0x1800e4e6f\n// > sub_1800F5010 @ 0x1800f5067\n// > sub_1800F5010 @ 0x1800f5129\n// > sub_180109120 @ 0x180109137\n// > sub_180111FC0 @ 0x180112013\n// > sub_1801120C0 @ 0x18011212e\n// > sub_180113950 @ 0x180113a76\n// > sub_18011C140 @ 0x18011c151\n// > sub_18011C160 @ 0x18011c25e\n// > <???> @ 0x180194348\n// > <???> @ 0x1801fdae8\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 FMOD_OS_CriticalSection_Create(struct _RTL_CRITICAL_SECTION **a1, char a2)\n{\n  struct _RTL_CRITICAL_SECTION *v3; // rbx\n\n  if ( a2 )\n  {\n    v3 = &CriticalSection;\nLABEL_3:\n    InitializeCriticalSection(v3);\n    *a1 = v3;\n    return 0;\n  }\n  v3 = (struct _RTL_CRITICAL_SECTION *)sub_1800B6530(\n                                         *((_QWORD *)off_1801AED20 + 52),\n                                         40,\n                                         \"C:\\\\buildagent1\\\\work\\\\570ad728b1678096\\\\core_api\\\\platforms\\\\win\\\\src\\\\fmod_os_misc.cpp\",\n                                         779,\n                                         0x200000,\n                                         0,\n                                         1);\n  if ( v3 )\n    goto LABEL_3;\n  return 38;\n}", "assembly": "; \n; FMOD_OS_CriticalSection_Create from 0x1800c0b50 to 0x1800c0bce (126 bytes)\n; \n; 24 xrefs:\n; > sub_1800B2E30 @ 0x1800b2f46\n; > sub_1800B6530 @ 0x1800b658b\n; > sub_1800B6AA0 @ 0x1800b6ace\n; > sub_1800B6C70 @ 0x1800b6d4d\n; > sub_1800B6E80 @ 0x1800b6f11\n; > sub_1800C23B0 @ 0x1800c250f\n; > sub_1800C6FD0 @ 0x1800c709d\n; > sub_1800D11B0 @ 0x1800d11e0\n; > sub_1800D11B0 @ 0x1800d11fd\n; > sub_1800D45C0 @ 0x1800d45d7\n; > sub_1800D45C0 @ 0x1800d45e9\n; > sub_1800D45C0 @ 0x1800d45fb\n; > sub_1800D9EB0 @ 0x1800d9f92\n; > sub_1800E4E00 @ 0x1800e4e6f\n; > sub_1800F5010 @ 0x1800f5067\n; > sub_1800F5010 @ 0x1800f5129\n; > sub_180109120 @ 0x180109137\n; > sub_180111FC0 @ 0x180112013\n; > sub_1801120C0 @ 0x18011212e\n; > sub_180113950 @ 0x180113a76\n; > sub_18011C140 @ 0x18011c151\n; > sub_18011C160 @ 0x18011c25e\n; > <???> @ 0x180194348\n; > <???> @ 0x1801fdae8\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     [rsp+arg_0], rbx                                               ; +0x0, 0x1800c0b50\npush    rdi                                                            ; +0x5, 0x1800c0b55\nsub     rsp, 40h                                                       ; +0x6, 0x1800c0b56\nmov     rdi, rcx                                                       ; +0xa, 0x1800c0b5a\ntest    dl, dl                                                         ; +0xd, 0x1800c0b5d\njz      short loc_1800C0B81                                            ; +0xf, 0x1800c0b5f\nlea     rbx, CriticalSection                                           ; +0x11, 0x1800c0b61\nmov     rcx, rbx; lpCriticalSection                                    ; +0x18, 0x1800c0b68\ncall    cs:InitializeCriticalSection                                   ; +0x1b, 0x1800c0b6b\nxor     eax, eax                                                       ; +0x21, 0x1800c0b71\nmov     [rdi], rbx                                                     ; +0x23, 0x1800c0b73\nmov     rbx, [rsp+48h+arg_0]                                           ; +0x26, 0x1800c0b76\nadd     rsp, 40h                                                       ; +0x2b, 0x1800c0b7b\npop     rdi                                                            ; +0x2f, 0x1800c0b7f\nretn                                                                   ; +0x30, 0x1800c0b80\nmov     rcx, cs:off_1801AED20                                          ; +0x31, 0x1800c0b81\nlea     r8, aCBuildagent1Wo_46; \"C:\\\\buildagent1\\\\work\\\\570ad728b1678096\"... ; +0x38, 0x1800c0b88\nmov     [rsp+48h+var_18], 1                                            ; +0x3f, 0x1800c0b8f\nmov     r9d, 30Bh                                                      ; +0x44, 0x1800c0b94\nmov     [rsp+48h+var_20], 0                                            ; +0x4a, 0x1800c0b9a\nmov     edx, 28h ; '('                                                 ; +0x4f, 0x1800c0b9f\nmov     [rsp+48h+var_28], 200000h                                      ; +0x54, 0x1800c0ba4\nmov     rcx, [rcx+1A0h]                                                ; +0x5c, 0x1800c0bac\ncall    sub_1800B6530                                                  ; +0x63, 0x1800c0bb3\nmov     rbx, rax                                                       ; +0x68, 0x1800c0bb8\ntest    rax, rax                                                       ; +0x6b, 0x1800c0bbb\njnz     short loc_1800C0B68                                            ; +0x6e, 0x1800c0bbe\nlea     eax, [rbx+26h]                                                 ; +0x70, 0x1800c0bc0\nmov     rbx, [rsp+48h+arg_0]                                           ; +0x73, 0x1800c0bc3\nadd     rsp, 40h                                                       ; +0x78, 0x1800c0bc8\npop     rdi                                                            ; +0x7c, 0x1800c0bcc\nretn                                                                   ; +0x7d, 0x1800c0bcd", "xrefs": ["sub_1800B2E30 @ 0x1800b2f46", "sub_1800B6530 @ 0x1800b658b", "sub_1800B6AA0 @ 0x1800b6ace", "sub_1800B6C70 @ 0x1800b6d4d", "sub_1800B6E80 @ 0x1800b6f11", "sub_1800C23B0 @ 0x1800c250f", "sub_1800C6FD0 @ 0x1800c709d", "sub_1800D11B0 @ 0x1800d11e0", "sub_1800D11B0 @ 0x1800d11fd", "sub_1800D45C0 @ 0x1800d45d7", "sub_1800D45C0 @ 0x1800d45e9", "sub_1800D45C0 @ 0x1800d45fb", "sub_1800D9EB0 @ 0x1800d9f92", "sub_1800E4E00 @ 0x1800e4e6f", "sub_1800F5010 @ 0x1800f5067", "sub_1800F5010 @ 0x1800f5129", "sub_180109120 @ 0x180109137", "sub_180111FC0 @ 0x180112013", "sub_1801120C0 @ 0x18011212e", "sub_180113950 @ 0x180113a76", "sub_18011C140 @ 0x18011c151", "sub_18011C160 @ 0x18011c25e", "<???> @ 0x180194348", "<???> @ 0x1801fdae8"], "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"}