; ; FMOD::Sound::unlock from 0x1800aa320 to 0x1800aa51a (506 bytes) ; ; 5 xrefs: ; > FMOD_Sound_Unlock @ 0x1800c681b ; > @ 0x180186d7c ; > @ 0x180186db0 ; > @ 0x180194348 ; > @ 0x1801fbe5c ; ; 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, 0x1800aa320 push rsi ; +0x3, 0x1800aa323 sub rsp, 180h ; +0x4, 0x1800aa324 mov rax, cs:__security_cookie ; +0xb, 0x1800aa32b xor rax, rsp ; +0x12, 0x1800aa332 mov [rsp+188h+var_48], rax ; +0x15, 0x1800aa335 mov [r11-10h], rbx ; +0x1d, 0x1800aa33d mov rbx, rdx ; +0x21, 0x1800aa341 mov [r11-18h], rbp ; +0x24, 0x1800aa344 lea rdx, [rsp+188h+var_158] ; +0x28, 0x1800aa348 mov [r11-28h], r12 ; +0x2d, 0x1800aa34d mov rbp, r8 ; +0x31, 0x1800aa351 mov [r11-30h], r14 ; +0x34, 0x1800aa354 lea r8, [rsp+188h+var_150] ; +0x38, 0x1800aa358 mov [r11-38h], r15 ; +0x3d, 0x1800aa35d mov r14d, r9d ; +0x41, 0x1800aa361 mov r12, rcx ; +0x44, 0x1800aa364 mov [rsp+188h+var_150], 0 ; +0x47, 0x1800aa367 call sub_1800E1460 ; +0x50, 0x1800aa370 mov r15d, [rsp+188h+arg_20] ; +0x55, 0x1800aa375 mov esi, eax ; +0x5d, 0x1800aa37d test eax, eax ; +0x5f, 0x1800aa37f jnz short loc_1800AA3CE ; +0x61, 0x1800aa381 mov rax, [rsp+188h+var_158] ; +0x63, 0x1800aa383 mov ecx, [rax+110h] ; +0x68, 0x1800aa388 nop ; +0x6e, 0x1800aa38e test ecx, ecx ; +0x6f, 0x1800aa38f jz short loc_1800AA3AB ; +0x71, 0x1800aa391 mov rax, [rsp+188h+var_158] ; +0x73, 0x1800aa393 mov ecx, [rax+110h] ; +0x78, 0x1800aa398 nop ; +0x7e, 0x1800aa39e cmp ecx, 7 ; +0x7f, 0x1800aa39f jz short loc_1800AA3AB ; +0x82, 0x1800aa3a2 mov esi, 2Eh ; '.' ; +0x84, 0x1800aa3a4 jmp short loc_1800AA3CE ; +0x89, 0x1800aa3a9 mov rcx, [rsp+188h+var_158] ; +0x8b, 0x1800aa3ab mov r9d, r14d ; +0x90, 0x1800aa3b0 mov r8, rbp ; +0x93, 0x1800aa3b3 mov dword ptr [rsp+188h+var_168], r15d ; +0x96, 0x1800aa3b6 mov rdx, rbx ; +0x9b, 0x1800aa3bb mov rax, [rcx] ; +0x9e, 0x1800aa3be call qword ptr [rax+30h] ; +0xa1, 0x1800aa3c1 mov esi, eax ; +0xa4, 0x1800aa3c4 test eax, eax ; +0xa6, 0x1800aa3c6 jz loc_1800AA4C3 ; +0xa8, 0x1800aa3c8 mov rax, cs:off_1801AED20 ; +0xae, 0x1800aa3ce test byte ptr [rax+10h], 80h ; +0xb5, 0x1800aa3d5 jz loc_1800AA4C3 ; +0xb9, 0x1800aa3d9 mov [rsp+188h+var_20], rdi ; +0xbf, 0x1800aa3df lea rcx, [rsp+188h+var_148] ; +0xc7, 0x1800aa3e7 mov edi, 100h ; +0xcc, 0x1800aa3ec mov r8, rbx ; +0xd1, 0x1800aa3f1 mov edx, edi ; +0xd4, 0x1800aa3f4 call sub_1800F3230 ; +0xd6, 0x1800aa3f6 movsxd rbx, eax ; +0xdb, 0x1800aa3fb lea rcx, [rsp+188h+var_148] ; +0xde, 0x1800aa3fe mov edx, edi ; +0xe3, 0x1800aa403 lea r8, asc_18014572C; ", " ; +0xe5, 0x1800aa405 sub edx, ebx ; +0xec, 0x1800aa40c add rcx, rbx; void * ; +0xee, 0x1800aa40e call sub_1800F2F70 ; +0xf1, 0x1800aa411 add ebx, eax ; +0xf6, 0x1800aa416 mov edx, edi ; +0xf8, 0x1800aa418 lea rax, [rsp+188h+var_148] ; +0xfa, 0x1800aa41a movsxd rcx, ebx ; +0xff, 0x1800aa41f add rcx, rax ; +0x102, 0x1800aa422 sub edx, ebx ; +0x105, 0x1800aa425 mov r8, rbp ; +0x107, 0x1800aa427 call sub_1800F3230 ; +0x10a, 0x1800aa42a add ebx, eax ; +0x10f, 0x1800aa42f lea rcx, [rsp+188h+var_148] ; +0x111, 0x1800aa431 movsxd rax, ebx ; +0x116, 0x1800aa436 lea r8, asc_18014572C; ", " ; +0x119, 0x1800aa439 mov edx, edi ; +0x120, 0x1800aa440 add rcx, rax; void * ; +0x122, 0x1800aa442 sub edx, ebx ; +0x125, 0x1800aa445 call sub_1800F2F70 ; +0x127, 0x1800aa447 add ebx, eax ; +0x12c, 0x1800aa44c lea rcx, [rsp+188h+var_148] ; +0x12e, 0x1800aa44e movsxd rax, ebx ; +0x133, 0x1800aa453 mov edx, edi ; +0x136, 0x1800aa456 add rcx, rax ; +0x138, 0x1800aa458 sub edx, ebx ; +0x13b, 0x1800aa45b mov r8d, r14d ; +0x13d, 0x1800aa45d call sub_1800F2EF0 ; +0x140, 0x1800aa460 add ebx, eax ; +0x145, 0x1800aa465 lea rcx, [rsp+188h+var_148] ; +0x147, 0x1800aa467 movsxd rax, ebx ; +0x14c, 0x1800aa46c lea r8, asc_18014572C; ", " ; +0x14f, 0x1800aa46f mov edx, edi ; +0x156, 0x1800aa476 add rcx, rax; void * ; +0x158, 0x1800aa478 sub edx, ebx ; +0x15b, 0x1800aa47b call sub_1800F2F70 ; +0x15d, 0x1800aa47d add ebx, eax ; +0x162, 0x1800aa482 lea rcx, [rsp+188h+var_148] ; +0x164, 0x1800aa484 movsxd rax, ebx ; +0x169, 0x1800aa489 sub edi, ebx ; +0x16c, 0x1800aa48c add rcx, rax ; +0x16e, 0x1800aa48e mov edx, edi ; +0x171, 0x1800aa491 mov r8d, r15d ; +0x173, 0x1800aa493 call sub_1800F2EF0 ; +0x176, 0x1800aa496 lea rax, [rsp+188h+var_148] ; +0x17b, 0x1800aa49b mov r8, r12 ; +0x180, 0x1800aa4a0 lea r9, aSoundUnlock; "Sound::unlock" ; +0x183, 0x1800aa4a3 mov [rsp+188h+var_168], rax ; +0x18a, 0x1800aa4aa mov edx, 5 ; +0x18f, 0x1800aa4af mov ecx, esi ; +0x194, 0x1800aa4b4 call sub_1800B20E0 ; +0x196, 0x1800aa4b6 mov rdi, [rsp+188h+var_20] ; +0x19b, 0x1800aa4bb mov rcx, [rsp+188h+var_150] ; +0x1a3, 0x1800aa4c3 mov r15, [rsp+188h+var_38] ; +0x1a8, 0x1800aa4c8 mov r14, [rsp+188h+var_30] ; +0x1b0, 0x1800aa4d0 mov r12, [rsp+188h+var_28] ; +0x1b8, 0x1800aa4d8 mov rbp, [rsp+188h+var_18] ; +0x1c0, 0x1800aa4e0 mov rbx, [rsp+188h+var_10] ; +0x1c8, 0x1800aa4e8 test rcx, rcx ; +0x1d0, 0x1800aa4f0 jz short loc_1800AA4FF ; +0x1d3, 0x1800aa4f3 mov edx, 0Ch ; +0x1d5, 0x1800aa4f5 call sub_180102300 ; +0x1da, 0x1800aa4fa mov eax, esi ; +0x1df, 0x1800aa4ff mov rcx, [rsp+188h+var_48] ; +0x1e1, 0x1800aa501 xor rcx, rsp; StackCookie ; +0x1e9, 0x1800aa509 call __security_check_cookie ; +0x1ec, 0x1800aa50c add rsp, 180h ; +0x1f1, 0x1800aa511 pop rsi ; +0x1f8, 0x1800aa518 retn ; +0x1f9, 0x1800aa519