{"type": "func", "start": 6443131872, "end": 6443132186, "name": "FMOD::Reverb3D::get3DAttributes", "pseudocode": "// \n// FMOD::Reverb3D::get3DAttributes from 0x1800a63e0 to 0x1800a651a (314 bytes)\n// \n// 5 xrefs:\n// > FMOD_Reverb3D_Get3DAttributes @ 0x1800c6349\n// > <???> @ 0x180186be4\n// > <???> @ 0x180186bf4\n// > <???> @ 0x180194348\n// > <???> @ 0x1801fb808\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::Reverb3D::get3DAttributes(__int64 a1, __int64 a2, __int64 a3, __int64 a4)\n{\n  int v7; // r15d\n  unsigned int v8; // esi\n  __int64 result; // rax\n  int v10; // ebx\n  int v11; // ebx\n  int v12; // ebx\n  int v13; // eax\n  __int64 v14; // [rsp+30h] [rbp-158h] BYREF\n  _BYTE v15[256]; // [rsp+40h] [rbp-148h] BYREF\n\n  v7 = a1;\n  v8 = sub_1800DC8D0(a1, &v14);\n  if ( v8 || (result = sub_1800DC0A0(v14, a2, a3, a4), (v8 = result) != 0) )\n  {\n    if ( *((char *)off_1801AED20 + 16) < 0 )\n    {\n      v10 = sub_1800F31D0(v15, 256, a2);\n      v11 = sub_1800F2F70(&v15[v10]) + v10;\n      v12 = sub_1800F30A0(&v15[v11], (unsigned int)(256 - v11), a3) + v11;\n      v13 = sub_1800F2F70(&v15[v12]);\n      sub_1800F30A0(&v15[v13 + v12], (unsigned int)(256 - (v13 + v12)), a4);\n      sub_1800B20E0(v8, 10, v7, (unsigned int)\"Reverb3D::get3DAttributes\", (__int64)v15);\n    }\n    return v8;\n  }\n  return result;\n}", "assembly": "; \n; FMOD::Reverb3D::get3DAttributes from 0x1800a63e0 to 0x1800a651a (314 bytes)\n; \n; 5 xrefs:\n; > FMOD_Reverb3D_Get3DAttributes @ 0x1800c6349\n; > <???> @ 0x180186be4\n; > <???> @ 0x180186bf4\n; > <???> @ 0x180194348\n; > <???> @ 0x1801fb808\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\npush    rbx                                                            ; +0x0, 0x1800a63e0\npush    rbp                                                            ; +0x2, 0x1800a63e2\npush    rsi                                                            ; +0x3, 0x1800a63e3\npush    r14                                                            ; +0x4, 0x1800a63e4\npush    r15                                                            ; +0x6, 0x1800a63e6\nsub     rsp, 160h                                                      ; +0x8, 0x1800a63e8\nmov     rax, cs:__security_cookie                                      ; +0xf, 0x1800a63ef\nxor     rax, rsp                                                       ; +0x16, 0x1800a63f6\nmov     [rsp+188h+var_48], rax                                         ; +0x19, 0x1800a63f9\nmov     rbx, rdx                                                       ; +0x21, 0x1800a6401\nmov     r14, r9                                                        ; +0x24, 0x1800a6404\nlea     rdx, [rsp+188h+var_158]                                        ; +0x27, 0x1800a6407\nmov     rbp, r8                                                        ; +0x2c, 0x1800a640c\nmov     r15, rcx                                                       ; +0x2f, 0x1800a640f\ncall    sub_1800DC8D0                                                  ; +0x32, 0x1800a6412\nmov     esi, eax                                                       ; +0x37, 0x1800a6417\ntest    eax, eax                                                       ; +0x39, 0x1800a6419\njnz     short loc_1800A643A                                            ; +0x3b, 0x1800a641b\nmov     rcx, [rsp+188h+var_158]                                        ; +0x3d, 0x1800a641d\nmov     r9, r14                                                        ; +0x42, 0x1800a6422\nmov     r8, rbp                                                        ; +0x45, 0x1800a6425\nmov     rdx, rbx                                                       ; +0x48, 0x1800a6428\ncall    sub_1800DC0A0                                                  ; +0x4b, 0x1800a642b\nmov     esi, eax                                                       ; +0x50, 0x1800a6430\ntest    eax, eax                                                       ; +0x52, 0x1800a6432\njz      loc_1800A64FB                                                  ; +0x54, 0x1800a6434\nmov     rax, cs:off_1801AED20                                          ; +0x5a, 0x1800a643a\ntest    byte ptr [rax+10h], 80h                                        ; +0x61, 0x1800a6441\njz      loc_1800A64F9                                                  ; +0x65, 0x1800a6445\nmov     [rsp+188h+var_30], rdi                                         ; +0x6b, 0x1800a644b\nlea     rcx, [rsp+188h+var_148]                                        ; +0x73, 0x1800a6453\nmov     edi, 100h                                                      ; +0x78, 0x1800a6458\nmov     r8, rbx                                                        ; +0x7d, 0x1800a645d\nmov     edx, edi                                                       ; +0x80, 0x1800a6460\ncall    sub_1800F31D0                                                  ; +0x82, 0x1800a6462\nmovsxd  rbx, eax                                                       ; +0x87, 0x1800a6467\nlea     rcx, [rsp+188h+var_148]                                        ; +0x8a, 0x1800a646a\nmov     edx, edi                                                       ; +0x8f, 0x1800a646f\nlea     r8, asc_18014572C; \", \"                                        ; +0x91, 0x1800a6471\nsub     edx, ebx                                                       ; +0x98, 0x1800a6478\nadd     rcx, rbx; void *                                               ; +0x9a, 0x1800a647a\ncall    sub_1800F2F70                                                  ; +0x9d, 0x1800a647d\nadd     ebx, eax                                                       ; +0xa2, 0x1800a6482\nmov     edx, edi                                                       ; +0xa4, 0x1800a6484\nlea     rax, [rsp+188h+var_148]                                        ; +0xa6, 0x1800a6486\nmovsxd  rcx, ebx                                                       ; +0xab, 0x1800a648b\nadd     rcx, rax                                                       ; +0xae, 0x1800a648e\nsub     edx, ebx                                                       ; +0xb1, 0x1800a6491\nmov     r8, rbp                                                        ; +0xb3, 0x1800a6493\ncall    sub_1800F30A0                                                  ; +0xb6, 0x1800a6496\nadd     ebx, eax                                                       ; +0xbb, 0x1800a649b\nlea     rcx, [rsp+188h+var_148]                                        ; +0xbd, 0x1800a649d\nmovsxd  rax, ebx                                                       ; +0xc2, 0x1800a64a2\nlea     r8, asc_18014572C; \", \"                                        ; +0xc5, 0x1800a64a5\nmov     edx, edi                                                       ; +0xcc, 0x1800a64ac\nadd     rcx, rax; void *                                               ; +0xce, 0x1800a64ae\nsub     edx, ebx                                                       ; +0xd1, 0x1800a64b1\ncall    sub_1800F2F70                                                  ; +0xd3, 0x1800a64b3\nadd     ebx, eax                                                       ; +0xd8, 0x1800a64b8\nlea     rcx, [rsp+188h+var_148]                                        ; +0xda, 0x1800a64ba\nmovsxd  rax, ebx                                                       ; +0xdf, 0x1800a64bf\nsub     edi, ebx                                                       ; +0xe2, 0x1800a64c2\nadd     rcx, rax                                                       ; +0xe4, 0x1800a64c4\nmov     edx, edi                                                       ; +0xe7, 0x1800a64c7\nmov     r8, r14                                                        ; +0xe9, 0x1800a64c9\ncall    sub_1800F30A0                                                  ; +0xec, 0x1800a64cc\nlea     rax, [rsp+188h+var_148]                                        ; +0xf1, 0x1800a64d1\nmov     r8, r15                                                        ; +0xf6, 0x1800a64d6\nlea     r9, aReverb3dGet3da; \"Reverb3D::get3DAttributes\"               ; +0xf9, 0x1800a64d9\nmov     [rsp+188h+var_168], rax                                        ; +0x100, 0x1800a64e0\nmov     edx, 0Ah                                                       ; +0x105, 0x1800a64e5\nmov     ecx, esi                                                       ; +0x10a, 0x1800a64ea\ncall    sub_1800B20E0                                                  ; +0x10c, 0x1800a64ec\nmov     rdi, [rsp+188h+var_30]                                         ; +0x111, 0x1800a64f1\nmov     eax, esi                                                       ; +0x119, 0x1800a64f9\nmov     rcx, [rsp+188h+var_48]                                         ; +0x11b, 0x1800a64fb\nxor     rcx, rsp; StackCookie                                          ; +0x123, 0x1800a6503\ncall    __security_check_cookie                                        ; +0x126, 0x1800a6506\nadd     rsp, 160h                                                      ; +0x12b, 0x1800a650b\npop     r15                                                            ; +0x132, 0x1800a6512\npop     r14                                                            ; +0x134, 0x1800a6514\npop     rsi                                                            ; +0x136, 0x1800a6516\npop     rbp                                                            ; +0x137, 0x1800a6517\npop     rbx                                                            ; +0x138, 0x1800a6518\nretn                                                                   ; +0x139, 0x1800a6519", "xrefs": ["FMOD_Reverb3D_Get3DAttributes @ 0x1800c6349", "<???> @ 0x180186be4", "<???> @ 0x180186bf4", "<???> @ 0x180194348", "<???> @ 0x1801fb808"], "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"}