; ; FMOD::ChannelI::validate from 0x1800d0a50 to 0x1800d0b57 (263 bytes) ; ; 22 xrefs: ; > sub_180012360 @ 0x180012363 ; > FMOD::Channel::getChannelGroup @ 0x18009fb43 ; > FMOD::Channel::getCurrentSound @ 0x18009fc1d ; > FMOD::Channel::getFrequency @ 0x18009fd02 ; > FMOD::Channel::getIndex @ 0x18009fddd ; > FMOD::Channel::getLoopCount @ 0x18009fec2 ; > FMOD::Channel::getLoopPoints @ 0x18009ffbd ; > FMOD::Channel::getPosition @ 0x1800a018a ; > FMOD::Channel::getPriority @ 0x1800a02c2 ; > FMOD::Channel::isVirtual @ 0x1800a03a5 ; > FMOD::Channel::setChannelGroup @ 0x1800a047d ; > FMOD::Channel::setFrequency @ 0x1800a0550 ; > FMOD::Channel::setLoopCount @ 0x1800a062c ; > FMOD::Channel::setLoopPoints @ 0x1800a070f ; > FMOD::Channel::setPosition @ 0x1800a08d4 ; > FMOD::Channel::setPriority @ 0x1800a09fc ; > sub_1800D10B0 @ 0x1800d10e1 ; > sub_1800D1500 @ 0x1800d1525 ; > @ 0x18018b618 ; > @ 0x18018b628 ; > @ 0x180194348 ; > @ 0x1801fea84 ; ; 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 [rsp+arg_10], rbp ; +0x0, 0x1800d0a50 mov [rsp+arg_18], rsi ; +0x5, 0x1800d0a55 push rdi ; +0xa, 0x1800d0a5a push r14 ; +0xb, 0x1800d0a5b push r15 ; +0xd, 0x1800d0a5d sub rsp, 20h ; +0xf, 0x1800d0a5f mov edi, ecx ; +0x13, 0x1800d0a63 mov eax, ecx ; +0x15, 0x1800d0a65 shr edi, 11h ; +0x17, 0x1800d0a67 mov rsi, r8 ; +0x1a, 0x1800d0a6a shr eax, 1 ; +0x1d, 0x1800d0a6d and edi, 0FFFh ; +0x1f, 0x1800d0a6f movzx ebp, ax ; +0x25, 0x1800d0a75 mov r14, rdx ; +0x28, 0x1800d0a78 mov r15, rcx ; +0x2b, 0x1800d0a7b test rdx, rdx ; +0x2e, 0x1800d0a7e jnz short loc_1800D0A8B ; +0x31, 0x1800d0a81 lea eax, [rdx+1Fh] ; +0x33, 0x1800d0a83 jmp loc_1800D0B43 ; +0x36, 0x1800d0a86 mov [rsp+38h+arg_8], rbx ; +0x3b, 0x1800d0a8b mov qword ptr [rdx], 0 ; +0x40, 0x1800d0a90 test ebp, ebp ; +0x47, 0x1800d0a97 jz loc_1800D0B39 ; +0x49, 0x1800d0a99 shr ecx, 1Dh ; +0x4f, 0x1800d0a9f lea rdx, [rsp+38h+arg_0] ; +0x52, 0x1800d0aa2 call sub_1800E43E0 ; +0x57, 0x1800d0aa7 test eax, eax ; +0x5c, 0x1800d0aac jnz loc_1800D0B39 ; +0x5e, 0x1800d0aae mov rbx, [rsp+38h+arg_0] ; +0x64, 0x1800d0ab4 cmp qword ptr [rbx+1E8h], 0 ; +0x69, 0x1800d0ab9 jnz short loc_1800D0ACA ; +0x71, 0x1800d0ac1 mov eax, 43h ; 'C' ; +0x73, 0x1800d0ac3 jmp short loc_1800D0B3E ; +0x78, 0x1800d0ac8 cmp edi, [rbx+1E0h] ; +0x7a, 0x1800d0aca jge short loc_1800D0B39 ; +0x80, 0x1800d0ad0 test rsi, rsi ; +0x82, 0x1800d0ad2 jz short loc_1800D0AF1 ; +0x85, 0x1800d0ad5 cmp qword ptr [rsi], 0 ; +0x87, 0x1800d0ad7 jnz short loc_1800D0B2B ; +0x8b, 0x1800d0adb mov rcx, rbx ; +0x8d, 0x1800d0add call sub_1801021E0 ; +0x90, 0x1800d0ae0 test eax, eax ; +0x95, 0x1800d0ae5 jnz short loc_1800D0B3E ; +0x97, 0x1800d0ae7 mov [rsi], rbx ; +0x99, 0x1800d0ae9 mov rbx, [rsp+38h+arg_0] ; +0x9c, 0x1800d0aec mov eax, edi ; +0xa1, 0x1800d0af1 imul rdx, rax, 230h ; +0xa3, 0x1800d0af3 add rdx, [rbx+1E8h] ; +0xaa, 0x1800d0afa cmp ebp, 0FFFFh ; +0xb1, 0x1800d0b01 jz short loc_1800D0B32 ; +0xb7, 0x1800d0b07 mov rcx, [rdx+50h] ; +0xb9, 0x1800d0b09 mov eax, r15d ; +0xbd, 0x1800d0b0d cmp rcx, rax ; +0xc0, 0x1800d0b10 jz short loc_1800D0B32 ; +0xc3, 0x1800d0b13 shr rcx, 1 ; +0xc5, 0x1800d0b15 movzx ecx, cx ; +0xc8, 0x1800d0b18 sub rcx, rbp ; +0xcb, 0x1800d0b1b cmp rcx, 2 ; +0xce, 0x1800d0b1e jb short loc_1800D0B39 ; +0xd2, 0x1800d0b22 mov eax, 3 ; +0xd4, 0x1800d0b24 jmp short loc_1800D0B3E ; +0xd9, 0x1800d0b29 mov eax, 1Ch ; +0xdb, 0x1800d0b2b jmp short loc_1800D0B3E ; +0xe0, 0x1800d0b30 mov [r14], rdx ; +0xe2, 0x1800d0b32 xor eax, eax ; +0xe5, 0x1800d0b35 jmp short loc_1800D0B3E ; +0xe7, 0x1800d0b37 mov eax, 1Eh ; +0xe9, 0x1800d0b39 mov rbx, [rsp+38h+arg_8] ; +0xee, 0x1800d0b3e mov rbp, [rsp+38h+arg_10] ; +0xf3, 0x1800d0b43 mov rsi, [rsp+38h+arg_18] ; +0xf8, 0x1800d0b48 add rsp, 20h ; +0xfd, 0x1800d0b4d pop r15 ; +0x101, 0x1800d0b51 pop r14 ; +0x103, 0x1800d0b53 pop rdi ; +0x105, 0x1800d0b55 retn ; +0x106, 0x1800d0b56