{"type": "func", "start": 6442506880, "end": 6442507310, "name": "FMOD::ChannelControl::setMixLevelsOutput", "pseudocode": "// \n// FMOD::ChannelControl::setMixLevelsOutput from 0x18000da80 to 0x18000dc2e (430 bytes)\n// \n// 4 xrefs:\n// > FMOD_ChannelGroup_SetMixLevelsOutput @ 0x1800c52ff\n// > FMOD_Channel_SetMixLevelsOutput @ 0x1800c594f\n// > <???> @ 0x180194348\n// > <???> @ 0x1801f6b7c\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::ChannelControl::setMixLevelsOutput(__int64 a1)\n{\n  int v1; // edi\n  unsigned int v2; // ebx\n  __int64 v4; // [rsp+50h] [rbp-1B8h] BYREF\n  __int64 v5; // [rsp+58h] [rbp-1B0h] BYREF\n  _BYTE v6[256]; // [rsp+60h] [rbp-1A8h] BYREF\n\n  v4 = 0;\n  v1 = a1;\n  v2 = sub_180012360(a1, &v5, &v4);\n  if ( (v2 || (v2 = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v5 + 184LL))(v5)) != 0)\n    && *((char *)off_1801AED20 + 16) < 0 )\n  {\n    sub_18000A120((__int64)v6, 256);\n    sub_1800B20E0(v2, 4, v1, (unsigned int)\"ChannelControl::setMixLevelsOutput\", (__int64)v6);\n  }\n  if ( v4 )\n    sub_180102320();\n  return v2;\n}", "assembly": "; \n; FMOD::ChannelControl::setMixLevelsOutput from 0x18000da80 to 0x18000dc2e (430 bytes)\n; \n; 4 xrefs:\n; > FMOD_ChannelGroup_SetMixLevelsOutput @ 0x1800c52ff\n; > FMOD_Channel_SetMixLevelsOutput @ 0x1800c594f\n; > <???> @ 0x180194348\n; > <???> @ 0x1801f6b7c\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, 0x18000da80\npush    rbx                                                            ; +0x3, 0x18000da83\npush    rdi                                                            ; +0x4, 0x18000da84\nsub     rsp, 1F8h                                                      ; +0x5, 0x18000da85\nmovaps  xmmword ptr [rax-28h], xmm6                                    ; +0xc, 0x18000da8c\nmovaps  xmmword ptr [rax-38h], xmm7                                    ; +0x10, 0x18000da90\nmovaps  xmmword ptr [rax-48h], xmm8                                    ; +0x14, 0x18000da94\nmovaps  xmmword ptr [rax-58h], xmm9                                    ; +0x19, 0x18000da99\nmovaps  xmmword ptr [rax-68h], xmm10                                   ; +0x1e, 0x18000da9e\nmovaps  xmmword ptr [rax-78h], xmm11                                   ; +0x23, 0x18000daa3\nmovaps  xmmword ptr [rax-88h], xmm12                                   ; +0x28, 0x18000daa8\nmovaps  xmmword ptr [rax-98h], xmm13                                   ; +0x30, 0x18000dab0\nmov     rax, cs:__security_cookie                                      ; +0x38, 0x18000dab8\nxor     rax, rsp                                                       ; +0x3f, 0x18000dabf\nmov     [rsp+208h+var_A8], rax                                         ; +0x42, 0x18000dac2\nlea     r8, [rsp+208h+var_1B8]                                         ; +0x4a, 0x18000daca\nmov     [rsp+208h+var_1B8], 0                                          ; +0x4f, 0x18000dacf\nlea     rdx, [rsp+208h+var_1B0]                                        ; +0x58, 0x18000dad8\nmovaps  xmm8, xmm3                                                     ; +0x5d, 0x18000dadd\nmovaps  xmm7, xmm2                                                     ; +0x61, 0x18000dae1\nmovaps  xmm6, xmm1                                                     ; +0x64, 0x18000dae4\nmov     rdi, rcx                                                       ; +0x67, 0x18000dae7\ncall    sub_180012360                                                  ; +0x6a, 0x18000daea\nmovss   xmm9, [rsp+208h+arg_40]                                        ; +0x6f, 0x18000daef\nmov     ebx, eax                                                       ; +0x79, 0x18000daf9\nmovss   xmm10, [rsp+208h+arg_38]                                       ; +0x7b, 0x18000dafb\nmovss   xmm11, [rsp+208h+arg_30]                                       ; +0x85, 0x18000db05\nmovss   xmm12, [rsp+208h+arg_28]                                       ; +0x8f, 0x18000db0f\nmovss   xmm13, [rsp+208h+arg_20]                                       ; +0x99, 0x18000db19\ntest    eax, eax                                                       ; +0xa3, 0x18000db23\njnz     short loc_18000DB68                                            ; +0xa5, 0x18000db25\nmov     rcx, [rsp+208h+var_1B0]                                        ; +0xa7, 0x18000db27\nmovaps  xmm3, xmm8                                                     ; +0xac, 0x18000db2c\nmovss   [rsp+208h+var_1C8], xmm9                                       ; +0xb0, 0x18000db30\nmovaps  xmm2, xmm7                                                     ; +0xb7, 0x18000db37\nmovss   [rsp+208h+var_1D0], xmm10                                      ; +0xba, 0x18000db3a\nmovaps  xmm1, xmm6                                                     ; +0xc1, 0x18000db41\nmovss   [rsp+208h+var_1D8], xmm11                                      ; +0xc4, 0x18000db44\nmov     rax, [rcx]                                                     ; +0xcb, 0x18000db4b\nmovss   [rsp+208h+var_1E0], xmm12                                      ; +0xce, 0x18000db4e\nmovss   dword ptr [rsp+208h+var_1E8], xmm13                            ; +0xd5, 0x18000db55\ncall    qword ptr [rax+0B8h]                                           ; +0xdc, 0x18000db5c\nmov     ebx, eax                                                       ; +0xe2, 0x18000db62\ntest    eax, eax                                                       ; +0xe4, 0x18000db64\njz      short loc_18000DBD4                                            ; +0xe6, 0x18000db66\nmov     rax, cs:off_1801AED20                                          ; +0xe8, 0x18000db68\ntest    byte ptr [rax+10h], 80h                                        ; +0xef, 0x18000db6f\njz      short loc_18000DBD4                                            ; +0xf3, 0x18000db73\nmovss   [rsp+208h+var_1C0], xmm9                                       ; +0xf5, 0x18000db75\nlea     rcx, [rsp+208h+var_1A8]                                        ; +0xfc, 0x18000db7c\nmovss   [rsp+208h+var_1C8], xmm10                                      ; +0x101, 0x18000db81\nmovaps  xmm3, xmm7                                                     ; +0x108, 0x18000db88\nmovss   [rsp+208h+var_1D0], xmm11                                      ; +0x10b, 0x18000db8b\nmovaps  xmm2, xmm6                                                     ; +0x112, 0x18000db92\nmovss   [rsp+208h+var_1D8], xmm12                                      ; +0x115, 0x18000db95\nmov     edx, 100h                                                      ; +0x11c, 0x18000db9c\nmovss   [rsp+208h+var_1E0], xmm13                                      ; +0x121, 0x18000dba1\nmovss   dword ptr [rsp+208h+var_1E8], xmm8                             ; +0x128, 0x18000dba8\ncall    sub_18000A120                                                  ; +0x12f, 0x18000dbaf\nlea     rax, [rsp+208h+var_1A8]                                        ; +0x134, 0x18000dbb4\nmov     r8, rdi                                                        ; +0x139, 0x18000dbb9\nlea     r9, aChannelcontrol_48; \"ChannelControl::setMixLevelsOutput\"   ; +0x13c, 0x18000dbbc\nmov     [rsp+208h+var_1E8], rax                                        ; +0x143, 0x18000dbc3\nmov     edx, 4                                                         ; +0x148, 0x18000dbc8\nmov     ecx, ebx                                                       ; +0x14d, 0x18000dbcd\ncall    sub_1800B20E0                                                  ; +0x14f, 0x18000dbcf\nmov     rcx, [rsp+208h+var_1B8]                                        ; +0x154, 0x18000dbd4\ntest    rcx, rcx                                                       ; +0x159, 0x18000dbd9\njz      short loc_18000DBE3                                            ; +0x15c, 0x18000dbdc\ncall    sub_180102320                                                  ; +0x15e, 0x18000dbde\nmov     eax, ebx                                                       ; +0x163, 0x18000dbe3\nmov     rcx, [rsp+208h+var_A8]                                         ; +0x165, 0x18000dbe5\nxor     rcx, rsp; StackCookie                                          ; +0x16d, 0x18000dbed\ncall    __security_check_cookie                                        ; +0x170, 0x18000dbf0\nlea     r11, [rsp+208h+var_10]                                         ; +0x175, 0x18000dbf5\nmovaps  xmm6, xmmword ptr [r11-18h]                                    ; +0x17d, 0x18000dbfd\nmovaps  xmm7, xmmword ptr [r11-28h]                                    ; +0x182, 0x18000dc02\nmovaps  xmm8, xmmword ptr [r11-38h]                                    ; +0x187, 0x18000dc07\nmovaps  xmm9, xmmword ptr [r11-48h]                                    ; +0x18c, 0x18000dc0c\nmovaps  xmm10, xmmword ptr [r11-58h]                                   ; +0x191, 0x18000dc11\nmovaps  xmm11, xmmword ptr [r11-68h]                                   ; +0x196, 0x18000dc16\nmovaps  xmm12, xmmword ptr [r11-78h]                                   ; +0x19b, 0x18000dc1b\nmovaps  xmm13, xmmword ptr [r11-88h]                                   ; +0x1a0, 0x18000dc20\nmov     rsp, r11                                                       ; +0x1a8, 0x18000dc28\npop     rdi                                                            ; +0x1ab, 0x18000dc2b\npop     rbx                                                            ; +0x1ac, 0x18000dc2c\nretn                                                                   ; +0x1ad, 0x18000dc2d", "xrefs": ["FMOD_ChannelGroup_SetMixLevelsOutput @ 0x1800c52ff", "FMOD_Channel_SetMixLevelsOutput @ 0x1800c594f", "<???> @ 0x180194348", "<???> @ 0x1801f6b7c"], "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"}