{"type": "func", "start": 6443240432, "end": 6443240546, "name": "FMOD_OS_CriticalSection_Free", "pseudocode": "// \n// FMOD_OS_CriticalSection_Free from 0x1800c0bf0 to 0x1800c0c62 (114 bytes)\n// \n// 26 xrefs:\n// > sub_1800B3900 @ 0x1800b395b\n// > sub_1800B3C40 @ 0x1800b3cbe\n// > sub_1800B68A0 @ 0x1800b69c2\n// > sub_1800C1A70 @ 0x1800c1ae4\n// > sub_1800C7170 @ 0x1800c71f4\n// > sub_1800D0FF0 @ 0x1800d1029\n// > sub_1800D0FF0 @ 0x1800d1082\n// > sub_1800D4520 @ 0x1800d4557\n// > sub_1800D4520 @ 0x1800d4575\n// > sub_1800D4520 @ 0x1800d4593\n// > sub_1800D9EB0 @ 0x1800da085\n// > sub_1800DA320 @ 0x1800da405\n// > sub_1800E2620 @ 0x1800e27b7\n// > sub_1800E2620 @ 0x1800e27cc\n// > sub_1800E2620 @ 0x1800e27e1\n// > sub_1800E2620 @ 0x1800e2c9c\n// > sub_1800F5890 @ 0x1800f5997\n// > sub_1800F5890 @ 0x1800f59ab\n// > sub_180109160 @ 0x1801091c4\n// > sub_1801128D0 @ 0x180112905\n// > sub_180112960 @ 0x180112997\n// > sub_180114FB0 @ 0x180114fd3\n// > sub_18011BEC0 @ 0x18011c0b4\n// > sub_18011C100 @ 0x18011c11e\n// > <???> @ 0x180194348\n// > <???> @ 0x1801fdb00\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_Free(LPCRITICAL_SECTION lpCriticalSection, char a2)\n{\n  if ( !lpCriticalSection )\n    return 28;\n  if ( lpCriticalSection->LockCount != -1 )\n    GetCurrentThreadId();\n  DeleteCriticalSection(lpCriticalSection);\n  if ( !a2 )\n    sub_1800B6AA0(*((_QWORD *)off_1801AED20 + 52), lpCriticalSection);\n  return 0;\n}", "assembly": "; \n; FMOD_OS_CriticalSection_Free from 0x1800c0bf0 to 0x1800c0c62 (114 bytes)\n; \n; 26 xrefs:\n; > sub_1800B3900 @ 0x1800b395b\n; > sub_1800B3C40 @ 0x1800b3cbe\n; > sub_1800B68A0 @ 0x1800b69c2\n; > sub_1800C1A70 @ 0x1800c1ae4\n; > sub_1800C7170 @ 0x1800c71f4\n; > sub_1800D0FF0 @ 0x1800d1029\n; > sub_1800D0FF0 @ 0x1800d1082\n; > sub_1800D4520 @ 0x1800d4557\n; > sub_1800D4520 @ 0x1800d4575\n; > sub_1800D4520 @ 0x1800d4593\n; > sub_1800D9EB0 @ 0x1800da085\n; > sub_1800DA320 @ 0x1800da405\n; > sub_1800E2620 @ 0x1800e27b7\n; > sub_1800E2620 @ 0x1800e27cc\n; > sub_1800E2620 @ 0x1800e27e1\n; > sub_1800E2620 @ 0x1800e2c9c\n; > sub_1800F5890 @ 0x1800f5997\n; > sub_1800F5890 @ 0x1800f59ab\n; > sub_180109160 @ 0x1801091c4\n; > sub_1801128D0 @ 0x180112905\n; > sub_180112960 @ 0x180112997\n; > sub_180114FB0 @ 0x180114fd3\n; > sub_18011BEC0 @ 0x18011c0b4\n; > sub_18011C100 @ 0x18011c11e\n; > <???> @ 0x180194348\n; > <???> @ 0x1801fdb00\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, 0x1800c0bf0\npush    rdi                                                            ; +0x5, 0x1800c0bf5\nsub     rsp, 30h                                                       ; +0x6, 0x1800c0bf6\nmovzx   edi, dl                                                        ; +0xa, 0x1800c0bfa\nmov     rbx, rcx                                                       ; +0xd, 0x1800c0bfd\ntest    rcx, rcx                                                       ; +0x10, 0x1800c0c00\njnz     short loc_1800C0C13                                            ; +0x13, 0x1800c0c03\nlea     eax, [rcx+1Ch]                                                 ; +0x15, 0x1800c0c05\nmov     rbx, [rsp+38h+arg_0]                                           ; +0x18, 0x1800c0c08\nadd     rsp, 30h                                                       ; +0x1d, 0x1800c0c0d\npop     rdi                                                            ; +0x21, 0x1800c0c11\nretn                                                                   ; +0x22, 0x1800c0c12\ncmp     dword ptr [rcx+8], 0FFFFFFFFh                                  ; +0x23, 0x1800c0c13\njz      short loc_1800C0C1F                                            ; +0x27, 0x1800c0c17\ncall    cs:GetCurrentThreadId                                          ; +0x29, 0x1800c0c19\nmov     rcx, rbx; lpCriticalSection                                    ; +0x2f, 0x1800c0c1f\ncall    cs:DeleteCriticalSection                                       ; +0x32, 0x1800c0c22\ntest    dil, dil                                                       ; +0x38, 0x1800c0c28\njnz     short loc_1800C0C55                                            ; +0x3b, 0x1800c0c2b\nmov     rcx, cs:off_1801AED20                                          ; +0x3d, 0x1800c0c2d\nlea     r8, aCBuildagent1Wo_46; \"C:\\\\buildagent1\\\\work\\\\570ad728b1678096\"... ; +0x44, 0x1800c0c34\nmov     r9d, 32Bh                                                      ; +0x4b, 0x1800c0c3b\nmov     [rsp+38h+var_18], 1                                            ; +0x51, 0x1800c0c41\nmov     rdx, rbx                                                       ; +0x56, 0x1800c0c46\nmov     rcx, [rcx+1A0h]                                                ; +0x59, 0x1800c0c49\ncall    sub_1800B6AA0                                                  ; +0x60, 0x1800c0c50\nmov     rbx, [rsp+38h+arg_0]                                           ; +0x65, 0x1800c0c55\nxor     eax, eax                                                       ; +0x6a, 0x1800c0c5a\nadd     rsp, 30h                                                       ; +0x6c, 0x1800c0c5c\npop     rdi                                                            ; +0x70, 0x1800c0c60\nretn                                                                   ; +0x71, 0x1800c0c61", "xrefs": ["sub_1800B3900 @ 0x1800b395b", "sub_1800B3C40 @ 0x1800b3cbe", "sub_1800B68A0 @ 0x1800b69c2", "sub_1800C1A70 @ 0x1800c1ae4", "sub_1800C7170 @ 0x1800c71f4", "sub_1800D0FF0 @ 0x1800d1029", "sub_1800D0FF0 @ 0x1800d1082", "sub_1800D4520 @ 0x1800d4557", "sub_1800D4520 @ 0x1800d4575", "sub_1800D4520 @ 0x1800d4593", "sub_1800D9EB0 @ 0x1800da085", "sub_1800DA320 @ 0x1800da405", "sub_1800E2620 @ 0x1800e27b7", "sub_1800E2620 @ 0x1800e27cc", "sub_1800E2620 @ 0x1800e27e1", "sub_1800E2620 @ 0x1800e2c9c", "sub_1800F5890 @ 0x1800f5997", "sub_1800F5890 @ 0x1800f59ab", "sub_180109160 @ 0x1801091c4", "sub_1801128D0 @ 0x180112905", "sub_180112960 @ 0x180112997", "sub_180114FB0 @ 0x180114fd3", "sub_18011BEC0 @ 0x18011c0b4", "sub_18011C100 @ 0x18011c11e", "<???> @ 0x180194348", "<???> @ 0x1801fdb00"], "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"}