; ; FMOD::System::playDSP from 0x1800afd10 to 0x1800afedf (463 bytes) ; ; 5 xrefs: ; > FMOD_System_PlayDSP @ 0x1800c6d90 ; > @ 0x180188a64 ; > @ 0x180188a98 ; > @ 0x180194348 ; > @ 0x1801fc8ac ; ; 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 ; mov r11, rsp ; +0x0, 0x1800afd10 push rsi ; +0x3, 0x1800afd13 sub rsp, 180h ; +0x4, 0x1800afd14 mov rax, cs:__security_cookie ; +0xb, 0x1800afd1b xor rax, rsp ; +0x12, 0x1800afd22 mov [rsp+188h+var_48], rax ; +0x15, 0x1800afd25 mov [r11-10h], rbx ; +0x1d, 0x1800afd2d mov rbx, rdx ; +0x21, 0x1800afd31 mov [r11-18h], rbp ; +0x24, 0x1800afd34 lea rdx, [rsp+188h+var_150] ; +0x28, 0x1800afd38 mov [r11-28h], r12 ; +0x2d, 0x1800afd3d mov rbp, r8 ; +0x31, 0x1800afd41 mov [r11-30h], r14 ; +0x34, 0x1800afd44 lea r8, [rsp+188h+var_158] ; +0x38, 0x1800afd48 mov [r11-38h], r15 ; +0x3d, 0x1800afd4d movzx r14d, r9b ; +0x41, 0x1800afd51 mov r15, [rsp+188h+arg_20] ; +0x45, 0x1800afd55 mov r12, rcx ; +0x4d, 0x1800afd5d mov [rsp+188h+var_158], 0 ; +0x50, 0x1800afd60 call ?validate@SystemI@FMOD@@SA?AW4FMOD_RESULT@@PEAVSystem@2@PEAPEAV12@PEAVSystemLockScope@2@@Z; FMOD::SystemI::validate(FMOD::System *,FMOD::SystemI * *,FMOD::SystemLockScope *) ; +0x59, 0x1800afd69 mov esi, eax ; +0x5e, 0x1800afd6e test eax, eax ; +0x60, 0x1800afd70 jnz short loc_1800AFD97 ; +0x62, 0x1800afd72 mov rcx, [rsp+188h+var_150] ; +0x64, 0x1800afd74 movzx r9d, r14b ; +0x69, 0x1800afd79 mov r8, rbp ; +0x6d, 0x1800afd7d mov [rsp+188h+var_168], r15 ; +0x70, 0x1800afd80 mov rdx, rbx ; +0x75, 0x1800afd85 call sub_1800E5F70 ; +0x78, 0x1800afd88 mov esi, eax ; +0x7d, 0x1800afd8d test eax, eax ; +0x7f, 0x1800afd8f jz loc_1800AFE8D ; +0x81, 0x1800afd91 mov rax, cs:off_1801AED20 ; +0x87, 0x1800afd97 test byte ptr [rax+10h], 80h ; +0x8e, 0x1800afd9e jz loc_1800AFE8D ; +0x92, 0x1800afda2 mov [rsp+188h+var_20], rdi ; +0x98, 0x1800afda8 lea rcx, [rsp+188h+var_148] ; +0xa0, 0x1800afdb0 mov edi, 100h ; +0xa5, 0x1800afdb5 mov r8, rbx ; +0xaa, 0x1800afdba mov edx, edi ; +0xad, 0x1800afdbd call sub_1800F3230 ; +0xaf, 0x1800afdbf movsxd rbx, eax ; +0xb4, 0x1800afdc4 lea rcx, [rsp+188h+var_148] ; +0xb7, 0x1800afdc7 mov edx, edi ; +0xbc, 0x1800afdcc lea r8, asc_18014572C; ", " ; +0xbe, 0x1800afdce sub edx, ebx ; +0xc5, 0x1800afdd5 add rcx, rbx; void * ; +0xc7, 0x1800afdd7 call sub_1800F2F70 ; +0xca, 0x1800afdda add ebx, eax ; +0xcf, 0x1800afddf mov edx, edi ; +0xd1, 0x1800afde1 lea rax, [rsp+188h+var_148] ; +0xd3, 0x1800afde3 movsxd rcx, ebx ; +0xd8, 0x1800afde8 add rcx, rax ; +0xdb, 0x1800afdeb sub edx, ebx ; +0xde, 0x1800afdee mov r8, rbp ; +0xe0, 0x1800afdf0 call sub_1800F3230 ; +0xe3, 0x1800afdf3 add ebx, eax ; +0xe8, 0x1800afdf8 lea rcx, [rsp+188h+var_148] ; +0xea, 0x1800afdfa movsxd rax, ebx ; +0xef, 0x1800afdff lea r8, asc_18014572C; ", " ; +0xf2, 0x1800afe02 mov edx, edi ; +0xf9, 0x1800afe09 add rcx, rax; void * ; +0xfb, 0x1800afe0b sub edx, ebx ; +0xfe, 0x1800afe0e call sub_1800F2F70 ; +0x100, 0x1800afe10 add ebx, eax ; +0x105, 0x1800afe15 lea rcx, [rsp+188h+var_148] ; +0x107, 0x1800afe17 movsxd rax, ebx ; +0x10c, 0x1800afe1c mov edx, edi ; +0x10f, 0x1800afe1f add rcx, rax; void * ; +0x111, 0x1800afe21 sub edx, ebx ; +0x114, 0x1800afe24 movzx r8d, r14b ; +0x116, 0x1800afe26 call sub_1800F3320 ; +0x11a, 0x1800afe2a add ebx, eax ; +0x11f, 0x1800afe2f lea rcx, [rsp+188h+var_148] ; +0x121, 0x1800afe31 movsxd rax, ebx ; +0x126, 0x1800afe36 lea r8, asc_18014572C; ", " ; +0x129, 0x1800afe39 mov edx, edi ; +0x130, 0x1800afe40 add rcx, rax; void * ; +0x132, 0x1800afe42 sub edx, ebx ; +0x135, 0x1800afe45 call sub_1800F2F70 ; +0x137, 0x1800afe47 add ebx, eax ; +0x13c, 0x1800afe4c lea rcx, [rsp+188h+var_148] ; +0x13e, 0x1800afe4e movsxd rax, ebx ; +0x143, 0x1800afe53 sub edi, ebx ; +0x146, 0x1800afe56 add rcx, rax ; +0x148, 0x1800afe58 mov edx, edi ; +0x14b, 0x1800afe5b mov r8, r15 ; +0x14d, 0x1800afe5d call sub_1800F3230 ; +0x150, 0x1800afe60 lea rax, [rsp+188h+var_148] ; +0x155, 0x1800afe65 mov r8, r12 ; +0x15a, 0x1800afe6a lea r9, aSystemPlaydsp; "System::playDSP" ; +0x15d, 0x1800afe6d mov [rsp+188h+var_168], rax ; +0x164, 0x1800afe74 mov edx, 1 ; +0x169, 0x1800afe79 mov ecx, esi ; +0x16e, 0x1800afe7e call sub_1800B20E0 ; +0x170, 0x1800afe80 mov rdi, [rsp+188h+var_20] ; +0x175, 0x1800afe85 mov rcx, [rsp+188h+var_158] ; +0x17d, 0x1800afe8d mov r15, [rsp+188h+var_38] ; +0x182, 0x1800afe92 mov r14, [rsp+188h+var_30] ; +0x18a, 0x1800afe9a mov r12, [rsp+188h+var_28] ; +0x192, 0x1800afea2 mov rbp, [rsp+188h+var_18] ; +0x19a, 0x1800afeaa mov rbx, [rsp+188h+var_10] ; +0x1a2, 0x1800afeb2 test rcx, rcx ; +0x1aa, 0x1800afeba jz short loc_1800AFEC4 ; +0x1ad, 0x1800afebd call sub_180102320 ; +0x1af, 0x1800afebf mov eax, esi ; +0x1b4, 0x1800afec4 mov rcx, [rsp+188h+var_48] ; +0x1b6, 0x1800afec6 xor rcx, rsp; StackCookie ; +0x1be, 0x1800afece call __security_check_cookie ; +0x1c1, 0x1800afed1 add rsp, 180h ; +0x1c6, 0x1800afed6 pop rsi ; +0x1cd, 0x1800afedd retn ; +0x1ce, 0x1800afede