; ; FMOD::Sound::lock from 0x1800a8e40 to 0x1800a90ce (654 bytes) ; ; 5 xrefs: ; > FMOD_Sound_Lock @ 0x1800c672b ; > @ 0x180186d10 ; > @ 0x180186d44 ; > @ 0x180194348 ; > @ 0x1801fbc28 ; ; 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, 0x1800a8e40 push rsi ; +0x3, 0x1800a8e43 sub rsp, 1B0h ; +0x4, 0x1800a8e44 mov rax, cs:__security_cookie ; +0xb, 0x1800a8e4b xor rax, rsp ; +0x12, 0x1800a8e52 mov [rsp+1B8h+var_58], rax ; +0x15, 0x1800a8e55 mov [r11-10h], rbx ; +0x1d, 0x1800a8e5d mov ebx, edx ; +0x21, 0x1800a8e61 mov [r11-18h], rbp ; +0x23, 0x1800a8e63 lea rdx, [rsp+1B8h+var_178] ; +0x27, 0x1800a8e67 mov [r11-28h], r12 ; +0x2c, 0x1800a8e6c mov ebp, r8d ; +0x30, 0x1800a8e70 mov r12, [rsp+1B8h+arg_28] ; +0x33, 0x1800a8e73 lea r8, [rsp+1B8h+var_170] ; +0x3b, 0x1800a8e7b mov [r11-30h], r13 ; +0x40, 0x1800a8e80 mov r13, [rsp+1B8h+arg_30] ; +0x44, 0x1800a8e84 mov [r11-38h], r14 ; +0x4c, 0x1800a8e8c mov r14, r9 ; +0x50, 0x1800a8e90 mov [r11-40h], r15 ; +0x53, 0x1800a8e93 mov r15, [rsp+1B8h+arg_20] ; +0x57, 0x1800a8e97 mov [rsp+1B8h+var_168], rcx ; +0x5f, 0x1800a8e9f mov [rsp+1B8h+var_170], 0 ; +0x64, 0x1800a8ea4 call sub_1800E1460 ; +0x6d, 0x1800a8ead mov esi, eax ; +0x72, 0x1800a8eb2 test eax, eax ; +0x74, 0x1800a8eb4 jnz short loc_1800A8F0C ; +0x76, 0x1800a8eb6 mov rax, [rsp+1B8h+var_178] ; +0x78, 0x1800a8eb8 mov ecx, [rax+110h] ; +0x7d, 0x1800a8ebd nop ; +0x83, 0x1800a8ec3 test ecx, ecx ; +0x84, 0x1800a8ec4 jz short loc_1800A8EE0 ; +0x86, 0x1800a8ec6 mov rax, [rsp+1B8h+var_178] ; +0x88, 0x1800a8ec8 mov ecx, [rax+110h] ; +0x8d, 0x1800a8ecd nop ; +0x93, 0x1800a8ed3 cmp ecx, 7 ; +0x94, 0x1800a8ed4 jz short loc_1800A8EE0 ; +0x97, 0x1800a8ed7 mov esi, 2Eh ; '.' ; +0x99, 0x1800a8ed9 jmp short loc_1800A8F0C ; +0x9e, 0x1800a8ede mov rcx, [rsp+1B8h+var_178] ; +0xa0, 0x1800a8ee0 mov r9, r14 ; +0xa5, 0x1800a8ee5 mov [rsp+1B8h+var_188], r13 ; +0xa8, 0x1800a8ee8 mov r8d, ebp ; +0xad, 0x1800a8eed mov [rsp+1B8h+var_190], r12 ; +0xb0, 0x1800a8ef0 mov edx, ebx ; +0xb5, 0x1800a8ef5 mov [rsp+1B8h+var_198], r15 ; +0xb7, 0x1800a8ef7 mov rax, [rcx] ; +0xbc, 0x1800a8efc call qword ptr [rax+28h] ; +0xbf, 0x1800a8eff mov esi, eax ; +0xc2, 0x1800a8f02 test eax, eax ; +0xc4, 0x1800a8f04 jz loc_1800A906F ; +0xc6, 0x1800a8f06 mov rax, cs:off_1801AED20 ; +0xcc, 0x1800a8f0c test byte ptr [rax+10h], 80h ; +0xd3, 0x1800a8f13 jz loc_1800A906F ; +0xd7, 0x1800a8f17 mov [rsp+1B8h+var_20], rdi ; +0xdd, 0x1800a8f1d lea rcx, [rsp+1B8h+var_158] ; +0xe5, 0x1800a8f25 mov edi, 100h ; +0xea, 0x1800a8f2a mov r8d, ebx ; +0xef, 0x1800a8f2f mov edx, edi ; +0xf2, 0x1800a8f32 call sub_1800F2EF0 ; +0xf4, 0x1800a8f34 movsxd rbx, eax ; +0xf9, 0x1800a8f39 lea rcx, [rsp+1B8h+var_158] ; +0xfc, 0x1800a8f3c mov edx, edi ; +0x101, 0x1800a8f41 lea r8, asc_18014572C; ", " ; +0x103, 0x1800a8f43 sub edx, ebx ; +0x10a, 0x1800a8f4a add rcx, rbx; void * ; +0x10c, 0x1800a8f4c call sub_1800F2F70 ; +0x10f, 0x1800a8f4f add ebx, eax ; +0x114, 0x1800a8f54 mov edx, edi ; +0x116, 0x1800a8f56 lea rax, [rsp+1B8h+var_158] ; +0x118, 0x1800a8f58 movsxd rcx, ebx ; +0x11d, 0x1800a8f5d add rcx, rax ; +0x120, 0x1800a8f60 sub edx, ebx ; +0x123, 0x1800a8f63 mov r8d, ebp ; +0x125, 0x1800a8f65 call sub_1800F2EF0 ; +0x128, 0x1800a8f68 add ebx, eax ; +0x12d, 0x1800a8f6d lea rcx, [rsp+1B8h+var_158] ; +0x12f, 0x1800a8f6f movsxd rax, ebx ; +0x134, 0x1800a8f74 lea r8, asc_18014572C; ", " ; +0x137, 0x1800a8f77 mov edx, edi ; +0x13e, 0x1800a8f7e add rcx, rax; void * ; +0x140, 0x1800a8f80 sub edx, ebx ; +0x143, 0x1800a8f83 call sub_1800F2F70 ; +0x145, 0x1800a8f85 add ebx, eax ; +0x14a, 0x1800a8f8a lea rcx, [rsp+1B8h+var_158] ; +0x14c, 0x1800a8f8c movsxd rax, ebx ; +0x151, 0x1800a8f91 mov edx, edi ; +0x154, 0x1800a8f94 add rcx, rax ; +0x156, 0x1800a8f96 sub edx, ebx ; +0x159, 0x1800a8f99 mov r8, r14 ; +0x15b, 0x1800a8f9b call sub_1800F3230 ; +0x15e, 0x1800a8f9e add ebx, eax ; +0x163, 0x1800a8fa3 lea rcx, [rsp+1B8h+var_158] ; +0x165, 0x1800a8fa5 movsxd rax, ebx ; +0x16a, 0x1800a8faa lea r8, asc_18014572C; ", " ; +0x16d, 0x1800a8fad mov edx, edi ; +0x174, 0x1800a8fb4 add rcx, rax; void * ; +0x176, 0x1800a8fb6 sub edx, ebx ; +0x179, 0x1800a8fb9 call sub_1800F2F70 ; +0x17b, 0x1800a8fbb add ebx, eax ; +0x180, 0x1800a8fc0 lea rcx, [rsp+1B8h+var_158] ; +0x182, 0x1800a8fc2 movsxd rax, ebx ; +0x187, 0x1800a8fc7 mov edx, edi ; +0x18a, 0x1800a8fca add rcx, rax ; +0x18c, 0x1800a8fcc sub edx, ebx ; +0x18f, 0x1800a8fcf mov r8, r15 ; +0x191, 0x1800a8fd1 call sub_1800F3230 ; +0x194, 0x1800a8fd4 add ebx, eax ; +0x199, 0x1800a8fd9 lea rcx, [rsp+1B8h+var_158] ; +0x19b, 0x1800a8fdb movsxd rax, ebx ; +0x1a0, 0x1800a8fe0 lea r8, asc_18014572C; ", " ; +0x1a3, 0x1800a8fe3 mov edx, edi ; +0x1aa, 0x1800a8fea add rcx, rax; void * ; +0x1ac, 0x1800a8fec sub edx, ebx ; +0x1af, 0x1800a8fef call sub_1800F2F70 ; +0x1b1, 0x1800a8ff1 add ebx, eax ; +0x1b6, 0x1800a8ff6 lea rcx, [rsp+1B8h+var_158] ; +0x1b8, 0x1800a8ff8 movsxd rax, ebx ; +0x1bd, 0x1800a8ffd mov edx, edi ; +0x1c0, 0x1800a9000 add rcx, rax ; +0x1c2, 0x1800a9002 sub edx, ebx ; +0x1c5, 0x1800a9005 mov r8, r12 ; +0x1c7, 0x1800a9007 call sub_1800F3060 ; +0x1ca, 0x1800a900a add ebx, eax ; +0x1cf, 0x1800a900f lea rcx, [rsp+1B8h+var_158] ; +0x1d1, 0x1800a9011 movsxd rax, ebx ; +0x1d6, 0x1800a9016 lea r8, asc_18014572C; ", " ; +0x1d9, 0x1800a9019 mov edx, edi ; +0x1e0, 0x1800a9020 add rcx, rax; void * ; +0x1e2, 0x1800a9022 sub edx, ebx ; +0x1e5, 0x1800a9025 call sub_1800F2F70 ; +0x1e7, 0x1800a9027 add ebx, eax ; +0x1ec, 0x1800a902c lea rcx, [rsp+1B8h+var_158] ; +0x1ee, 0x1800a902e sub edi, ebx ; +0x1f3, 0x1800a9033 movsxd rax, ebx ; +0x1f5, 0x1800a9035 add rcx, rax ; +0x1f8, 0x1800a9038 mov r8, r13 ; +0x1fb, 0x1800a903b mov edx, edi ; +0x1fe, 0x1800a903e call sub_1800F3060 ; +0x200, 0x1800a9040 mov r8, [rsp+1B8h+var_168] ; +0x205, 0x1800a9045 lea rax, [rsp+1B8h+var_158] ; +0x20a, 0x1800a904a lea r9, aSoundLock; "Sound::lock" ; +0x20f, 0x1800a904f mov [rsp+1B8h+var_198], rax ; +0x216, 0x1800a9056 mov edx, 5 ; +0x21b, 0x1800a905b mov ecx, esi ; +0x220, 0x1800a9060 call sub_1800B20E0 ; +0x222, 0x1800a9062 mov rdi, [rsp+1B8h+var_20] ; +0x227, 0x1800a9067 mov rcx, [rsp+1B8h+var_170] ; +0x22f, 0x1800a906f mov r15, [rsp+1B8h+var_40] ; +0x234, 0x1800a9074 mov r14, [rsp+1B8h+var_38] ; +0x23c, 0x1800a907c mov r13, [rsp+1B8h+var_30] ; +0x244, 0x1800a9084 mov r12, [rsp+1B8h+var_28] ; +0x24c, 0x1800a908c mov rbp, [rsp+1B8h+var_18] ; +0x254, 0x1800a9094 mov rbx, [rsp+1B8h+var_10] ; +0x25c, 0x1800a909c test rcx, rcx ; +0x264, 0x1800a90a4 jz short loc_1800A90B3 ; +0x267, 0x1800a90a7 mov edx, 0Ch ; +0x269, 0x1800a90a9 call sub_180102300 ; +0x26e, 0x1800a90ae mov eax, esi ; +0x273, 0x1800a90b3 mov rcx, [rsp+1B8h+var_58] ; +0x275, 0x1800a90b5 xor rcx, rsp; StackCookie ; +0x27d, 0x1800a90bd call __security_check_cookie ; +0x280, 0x1800a90c0 add rsp, 1B0h ; +0x285, 0x1800a90c5 pop rsi ; +0x28c, 0x1800a90cc retn ; +0x28d, 0x1800a90cd