// // FMOD_Thread_SetAttributes from 0x1800b88b0 to 0x1800b8a88 (472 bytes) // // 6 xrefs: // > sub_180001200 @ 0x180001227 // > FMOD5_Thread_SetAttributes @ 0x1800f4ef0 // > @ 0x180189a18 // > @ 0x180189a28 // > @ 0x180194348 // > @ 0x1801fd308 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // __int64 __fastcall FMOD_Thread_SetAttributes(int a1, __int64 a2, int a3, int a4) { int v6; // edx if ( a1 >= 13 ) return 31; v6 = 0; if ( a2 == 0x4000000000000000LL ) { switch ( a1 ) { case 0: a2 = 0x4000000000000001LL; break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 9: case 10: case 11: case 12: a2 = 0x4000000000000003LL; break; case 8: a2 = 0x4000000000000002LL; break; default: a2 = 0; break; } } *((_QWORD *)off_1801AED20 + a1 + 9) = a2; if ( a3 == -32769 ) { switch ( a1 ) { case 0: a3 = -32774; break; case 1: a3 = -32775; break; case 2: case 11: case 12: a3 = -32773; break; case 3: case 4: case 5: a3 = -32772; break; case 6: a3 = -32770; break; case 7: case 8: case 9: case 10: a3 = -32771; break; default: a3 = 0; break; } } *((_DWORD *)off_1801AED20 + a1 + 44) = a3; if ( a4 ) { v6 = a4; } else { switch ( a1 ) { case 0: v6 = 81920; break; case 1: case 5: case 11: case 12: v6 = 0x4000; break; case 2: case 8: case 9: case 10: v6 = 98304; break; case 3: v6 = 0x10000; break; case 4: v6 = 114688; break; case 6: v6 = 49152; break; case 7: v6 = 0x20000; break; default: break; } } *((_DWORD *)off_1801AED20 + a1 + 57) = v6; return 0; }