; ; FMOD::ChannelControl::getFadePoints from 0x18000b700 to 0x18000b903 (515 bytes) ; ; 4 xrefs: ; > FMOD_ChannelGroup_GetFadePoints @ 0x1800c4fb9 ; > FMOD_Channel_GetFadePoints @ 0x1800c5589 ; > @ 0x180194348 ; > @ 0x1801f678c ; ; 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 ; push rbx ; +0x0, 0x18000b700 push rbp ; +0x2, 0x18000b702 push rsi ; +0x3, 0x18000b703 push rdi ; +0x4, 0x18000b704 push r14 ; +0x5, 0x18000b705 push r15 ; +0x7, 0x18000b707 sub rsp, 158h ; +0x9, 0x18000b709 mov rax, cs:__security_cookie ; +0x10, 0x18000b710 xor rax, rsp ; +0x17, 0x18000b717 mov [rsp+188h+var_48], rax ; +0x1a, 0x18000b71a mov rsi, r8 ; +0x22, 0x18000b722 mov rdi, rdx ; +0x25, 0x18000b725 xor ebx, ebx ; +0x28, 0x18000b728 lea r8, [rsp+188h+var_158] ; +0x2a, 0x18000b72a lea rdx, [rsp+188h+var_150] ; +0x2f, 0x18000b72f mov [rsp+188h+var_158], rbx ; +0x34, 0x18000b734 mov r14, r9 ; +0x39, 0x18000b739 mov r15, rcx ; +0x3c, 0x18000b73c call sub_180012360 ; +0x3f, 0x18000b73f mov ebp, eax ; +0x44, 0x18000b744 test eax, eax ; +0x46, 0x18000b746 jnz loc_18000B823 ; +0x48, 0x18000b748 mov rcx, [rsp+188h+var_150] ; +0x4e, 0x18000b74e mov r9, r14 ; +0x53, 0x18000b753 mov r8, rsi ; +0x56, 0x18000b756 mov rdx, rdi ; +0x59, 0x18000b759 mov rax, [rcx] ; +0x5c, 0x18000b75c call qword ptr [rax+108h] ; +0x5f, 0x18000b75f mov ebp, eax ; +0x65, 0x18000b765 test eax, eax ; +0x67, 0x18000b767 jnz loc_18000B823 ; +0x69, 0x18000b769 test rsi, rsi ; +0x6f, 0x18000b76f jz loc_18000B8D2 ; +0x72, 0x18000b772 mov edx, [rdi] ; +0x78, 0x18000b778 test edx, edx ; +0x7a, 0x18000b77a jz loc_18000B8D2 ; +0x7c, 0x18000b77c cmp edx, 8 ; +0x82, 0x18000b782 jb short loc_18000B7F9 ; +0x85, 0x18000b785 mov eax, 14h ; +0x87, 0x18000b787 lea r10d, [rbx+4] ; +0x8c, 0x18000b78c mov r8d, edx ; +0x90, 0x18000b790 and r8d, 0FFFFFFF8h ; +0x93, 0x18000b793 movq xmm1, rax ; +0x97, 0x18000b797 nop dword ptr [rax+00h] ; +0x9c, 0x18000b79c mov eax, ebx ; +0xa0, 0x18000b7a0 add ebx, 8 ; +0xa2, 0x18000b7a2 movdqu xmm0, xmmword ptr [rsi+rax*8] ; +0xa5, 0x18000b7a5 psrlq xmm0, xmm1 ; +0xaa, 0x18000b7aa movdqu xmmword ptr [rsi+rax*8], xmm0 ; +0xae, 0x18000b7ae lea eax, [r10-2] ; +0xb3, 0x18000b7b3 movdqu xmm0, xmmword ptr [rsi+rax*8] ; +0xb7, 0x18000b7b7 psrlq xmm0, xmm1 ; +0xbc, 0x18000b7bc movdqu xmmword ptr [rsi+rax*8], xmm0 ; +0xc0, 0x18000b7c0 mov eax, r10d ; +0xc5, 0x18000b7c5 movdqu xmm0, xmmword ptr [rsi+rax*8] ; +0xc8, 0x18000b7c8 psrlq xmm0, xmm1 ; +0xcd, 0x18000b7cd movdqu xmmword ptr [rsi+rax*8], xmm0 ; +0xd1, 0x18000b7d1 lea eax, [r10+2] ; +0xd6, 0x18000b7d6 add r10d, 8 ; +0xda, 0x18000b7da movdqu xmm0, xmmword ptr [rsi+rax*8] ; +0xde, 0x18000b7de psrlq xmm0, xmm1 ; +0xe3, 0x18000b7e3 movdqu xmmword ptr [rsi+rax*8], xmm0 ; +0xe7, 0x18000b7e7 cmp ebx, r8d ; +0xec, 0x18000b7ec jb short loc_18000B7A0 ; +0xef, 0x18000b7ef cmp ebx, edx ; +0xf1, 0x18000b7f1 jnb loc_18000B8D2 ; +0xf3, 0x18000b7f3 mov eax, ebx ; +0xf9, 0x18000b7f9 sub edx, ebx ; +0xfb, 0x18000b7fb mov ecx, edx ; +0xfd, 0x18000b7fd lea rax, [rsi+rax*8] ; +0xff, 0x18000b7ff nop dword ptr [rax+00h] ; +0x103, 0x18000b803 nop word ptr [rax+rax+00000000h] ; +0x107, 0x18000b807 shr qword ptr [rax], 14h ; +0x110, 0x18000b810 lea rax, [rax+8] ; +0x114, 0x18000b814 sub rcx, 1 ; +0x118, 0x18000b818 jnz short loc_18000B810 ; +0x11c, 0x18000b81c jmp loc_18000B8D2 ; +0x11e, 0x18000b81e mov rax, cs:off_1801AED20 ; +0x123, 0x18000b823 test byte ptr [rax+10h], 80h ; +0x12a, 0x18000b82a jz loc_18000B8D2 ; +0x12e, 0x18000b82e mov r8, rdi ; +0x134, 0x18000b834 lea rcx, [rsp+188h+var_148] ; +0x137, 0x18000b837 mov edi, 100h ; +0x13c, 0x18000b83c mov edx, edi ; +0x141, 0x18000b841 call sub_1800F3060 ; +0x143, 0x18000b843 movsxd rbx, eax ; +0x148, 0x18000b848 lea rcx, [rsp+188h+var_148] ; +0x14b, 0x18000b84b mov edx, edi ; +0x150, 0x18000b850 lea r8, asc_18014572C; ", " ; +0x152, 0x18000b852 sub edx, ebx ; +0x159, 0x18000b859 add rcx, rbx; void * ; +0x15b, 0x18000b85b call sub_1800F2F70 ; +0x15e, 0x18000b85e add ebx, eax ; +0x163, 0x18000b863 mov edx, edi ; +0x165, 0x18000b865 lea rax, [rsp+188h+var_148] ; +0x167, 0x18000b867 movsxd rcx, ebx ; +0x16c, 0x18000b86c add rcx, rax ; +0x16f, 0x18000b86f sub edx, ebx ; +0x172, 0x18000b872 mov r8, rsi ; +0x174, 0x18000b874 call sub_1800F3280 ; +0x177, 0x18000b877 add ebx, eax ; +0x17c, 0x18000b87c lea rcx, [rsp+188h+var_148] ; +0x17e, 0x18000b87e movsxd rax, ebx ; +0x183, 0x18000b883 lea r8, asc_18014572C; ", " ; +0x186, 0x18000b886 mov edx, edi ; +0x18d, 0x18000b88d add rcx, rax; void * ; +0x18f, 0x18000b88f sub edx, ebx ; +0x192, 0x18000b892 call sub_1800F2F70 ; +0x194, 0x18000b894 add ebx, eax ; +0x199, 0x18000b899 lea rcx, [rsp+188h+var_148] ; +0x19b, 0x18000b89b movsxd rax, ebx ; +0x1a0, 0x18000b8a0 sub edi, ebx ; +0x1a3, 0x18000b8a3 add rcx, rax ; +0x1a5, 0x18000b8a5 mov edx, edi ; +0x1a8, 0x18000b8a8 mov r8, r14 ; +0x1aa, 0x18000b8aa call sub_1800F30A0 ; +0x1ad, 0x18000b8ad lea rax, [rsp+188h+var_148] ; +0x1b2, 0x18000b8b2 mov r8, r15 ; +0x1b7, 0x18000b8b7 lea r9, aChannelcontrol_16; "ChannelControl::getFadePoints" ; +0x1ba, 0x18000b8ba mov [rsp+188h+var_168], rax ; +0x1c1, 0x18000b8c1 mov edx, 4 ; +0x1c6, 0x18000b8c6 mov ecx, ebp ; +0x1cb, 0x18000b8cb call sub_1800B20E0 ; +0x1cd, 0x18000b8cd mov rcx, [rsp+188h+var_158] ; +0x1d2, 0x18000b8d2 test rcx, rcx ; +0x1d7, 0x18000b8d7 jz short loc_18000B8E1 ; +0x1da, 0x18000b8da call sub_180102320 ; +0x1dc, 0x18000b8dc mov eax, ebp ; +0x1e1, 0x18000b8e1 mov rcx, [rsp+188h+var_48] ; +0x1e3, 0x18000b8e3 xor rcx, rsp; StackCookie ; +0x1eb, 0x18000b8eb call __security_check_cookie ; +0x1ee, 0x18000b8ee add rsp, 158h ; +0x1f3, 0x18000b8f3 pop r15 ; +0x1fa, 0x18000b8fa pop r14 ; +0x1fc, 0x18000b8fc pop rdi ; +0x1fe, 0x18000b8fe pop rsi ; +0x1ff, 0x18000b8ff pop rbp ; +0x200, 0x18000b900 pop rbx ; +0x201, 0x18000b901 retn ; +0x202, 0x18000b902