Function at 0x180015f70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
push rbp
push r14
push r15
lea rbp, [r11 - 0x108]
sub rsp, 0x1f0
movzx eax, byte [rcx + 0x19]
mov r14, rdx
mov r15, rcx
nop
test al, al
jne 0x18001665d
mov qword [r11 - 0x28], rsi
lea rsi, [rdx + 8]
mov qword [r11 - 0x38], r12
mov r12d, dword [rdx + 0xc]
mov qword [r11 - 0x40], r13
xor r13d, r13d
mov qword [r11 - 0x20], rbx
mov qword [r11 - 0x30], rdi
test r12d, r12d
jle 0x180016384
nop word [rax + rax]
mov eax, dword [r15 + 0x14]
mov rbx, rsi
test eax, eax
jne 0x18001607f
test r12d, r12d
je 0x18001607f
mov rcx, r15
call fcn.180015d90
mov ecx, dword [rsi]
lea rdx, [rsp + 0x40]
mov rax, qword [r15 + 8]
add ecx, r13d
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x4c], r12d
mov dword [rsp + 0x48], ecx
mov rcx, qword [rax + 0x138]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov eax, dword [rsp + 0x4c]
mov dword [rbp + 0x110], eax
mov rax, qword [r15 + 8]
mov rsi, qword [rax + 0x138]
lea rbx, [rax + 0x20]
mov rcx, rbx
call fcn.180009650
mov rcx, rbx
mov edi, eax
call fcn.1800096e0
sub edi, eax
mov rcx, rsi
mov rax, qword [rsi]
mov ebx, edi
call qword [rax + 0x28]
cmp rax, rbx
jl 0x180016069
mov r8d, 1
mov dword [r15 + 0x14], r8d
mov eax, r8d
jmp 0x18001606d
mov eax, dword [r15 + 0x14]
sub r12d, dword [rbp + 0x110]
lea rbx, [r14 + 8]
add r13d, dword [rbp + 0x110]
mov rsi, rbx
cmp eax, 1
jne 0x1800162ce
test r12d, r12d
jle 0x1800162ce
mov rcx, r15
call fcn.180015d90
mov rax, qword [r15 + 8]
lea rsi, [r15 + 8]
mov ecx, dword [rbx]
lea rdx, [rsp + 0x50]
movups xmm0, xmmword [r14]
add ecx, r13d
movups xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x5c], r12d
mov dword [rsp + 0x58], ecx
mov rcx, qword [rax + 0x138]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov eax, dword [rsp + 0x5c]
mov dword [rbp + 0x128], eax
mov rax, qword [rsi]
mov rdi, qword [rax + 0x138]
mov rcx, rdi
mov rax, qword [rdi]
call qword [rax + 0x30]
mov rdx, qword [rdi]
mov rcx, rdi
mov rbx, rax
call qword [rdx + 0x28]
cmp rax, rbx
jl 0x1800162bc
mov rbx, qword [rsi]
cmp qword [rbx + 0x100], 0
je 0x18001627e
cmp byte [r15 + 0x41], 0
mov dword [r15 + 0x14], 2
jne 0x18001624d
cmp qword [rbx + 0x100], 0
lea r14, [r15 + 0x41]
jne 0x18001621d
call sym.libMilody.dll_public:_static_class_milody::log::MilodyLogger____ptr64___cdecl_milody::log::MilodyLogger::getInstance_void_
mov rcx, rax
call sym.libMilody.dll_public:_class_spdlog::logger____ptr64___cdecl_milody::log::MilodyLogger::getLogger_void_const___ptr64
mov r14, rax
mov qword [rbp - 0x78], 0x16
lea rax, str.no_fullsong_to_prepare
mov qword [rbp - 0x80], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov ebx, dword [r14 + 0x40]
lea rcx, [r14 + 0x88]
cmp ebx, 5
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rax
setle byte [rbp + 0x120]
call fcn.18014a100
mov byte [rbp + 0x110], al
cmp ebx, 5
jle 0x180016196
test al, al
je 0x180016219
cmp qword [r14 + 0x20], 0xf
lea rcx, [r14 + 8]
jbe 0x1800161a5
mov rcx, qword [r14 + 8]
mov rax, qword [r14 + 0x18]
lea r8, [rbp - 0x60]
movaps xmm0, xmmword [rbp - 0x80]
lea rdx, [rbp - 0x50]
mov qword [rbp - 0x68], rax
mov r9d, 5
mov qword [rbp - 0x70], rcx
lea rax, [rsp + 0x30]
movaps xmm1, xmmword [rbp - 0x70]
lea rcx, [rbp - 0x30]
movdqa xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [rsp + 0x60]
mov qword [rsp + 0x20], rax
movdqa xmmword [rbp - 0x60], xmm1
movsd xmm1, qword [rsp + 0x70]
movsd qword [rbp - 0x40], xmm1
movaps xmmword [rbp - 0x50], xmm0
call fcn.1801481b0
movzx r9d, byte [rbp + 0x110]
lea rdx, [rbp - 0x30]
movzx r8d, byte [rbp + 0x120]
mov rcx, r14
call fcn.18014f260
lea rsi, [r15 + 8]
lea r14, [r15 + 0x41]
mov rax, qword [rsi]
movsd xmm2, qword [r15 + 0x20]
mov edx, dword [r15 + 0x1c]
mov rcx, qword [rax + 0x140]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rsi]
xor edx, edx
mov rcx, qword [rax + 0x140]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov byte [r14], 1
mov rdx, qword [rsi]
mov r14, qword [rdx + 0x140]
lea rbx, [rdx + 0x20]
mov rcx, rbx
mov rax, qword [r14]
mov rsi, qword [rax + 0x20]
call fcn.1800096e0
mov rcx, rbx
mov edi, eax
call fcn.180009720
mov rcx, r14
lea edx, [rdi + rax]
call rsi
jmp 0x1800162b5
mov dword [r15 + 0x14], 1
lea rcx, [rbx + 0x20]
mov r14, qword [rbx + 0x138]
mov rax, qword [r14]
mov rsi, qword [rax + 0x20]
call fcn.180009650
lea rcx, [rbx + 0x20]
mov edi, eax
call fcn.1800096e0
sub edi, eax
mov rcx, r14
mov edx, edi
call rsi
inc qword [r15 + 0x38]
mov r14, qword [rbp + 0x118]
sub r12d, dword [rbp + 0x128]
lea rsi, [r14 + 8]
add r13d, dword [rbp + 0x128]
cmp dword [r15 + 0x14], 2
jne 0x18001636b
mov rdx, rsi
mov qword [rbp + 0x110], rdx
test r12d, r12d
jle 0x18001638e
mov ecx, dword [rsi]
lea rdx, [rsp + 0x30]
mov rax, qword [r15 + 8]
add ecx, r13d
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x3c], r12d
mov dword [rsp + 0x38], ecx
mov rcx, qword [rax + 0x140]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov eax, dword [rsp + 0x3c]
mov dword [rbp + 0x110], eax
mov rax, qword [r15 + 8]
mov rdi, qword [rax + 0x140]
mov rcx, rdi
mov rax, qword [rdi]
call qword [rax + 0x30]
mov rdx, qword [rdi]
mov rcx, rdi
mov rbx, rax
call qword [rdx + 0x28]
cmp rax, rbx
jl 0x18001635b
mov rax, qword [r15 + 8]
xor edx, edx
mov rcx, qword [rax + 0x140]
mov rax, qword [rcx]
call qword [rax + 0x20]
sub r12d, dword [rbp + 0x110]
add r13d, dword [rbp + 0x110]
jmp 0x18001636f
lea rsi, [r14 + 8]
mov rdx, rsi
mov qword [rbp + 0x110], rdx
test r12d, r12d
jg 0x180015fd0
jmp 0x18001638e
mov rdx, rsi
mov qword [rbp + 0x110], rdx
movzx eax, byte [r15 + 0x18]
nop
mov r13, qword [rsp + 0x1c8]
test al, al
sete al
xchg byte [r15 + 0x19], al
movzx eax, byte [r15 + 0x18]
nop
test al, al
jne 0x180016630
mov rax, qword [r14]
mov ecx, dword [rax]
sub ecx, 1
movsxd r15, ecx
js 0x18001660c
movaps xmmword [rsp + 0x1b0], xmm6
movaps xmmword [rsp + 0x1a0], xmm7
movss xmm7, dword [0x18015d9d4]
movaps xmmword [rsp + 0x170], xmm10
xorps xmm10, xmm10
movaps xmmword [rsp + 0x160], xmm11
movss xmm11, dword [0x18015db58]
movaps xmmword [rsp + 0x150], xmm12
movss xmm12, dword [0x18015db60]
movaps xmmword [rsp + 0x140], xmm13
movss xmm13, dword [0x18015db50]
movaps xmmword [rsp + 0x130], xmm14
movss xmm14, dword [0x18015db54]
movaps xmmword [rsp + 0x190], xmm8
movaps xmmword [rsp + 0x180], xmm9
nop dword [rax]
nop word [rax + rax]
mov rsi, qword [r14]
mov edi, 0x100
cmp dword [r14 + 0xc], edi
movaps xmm6, xmm7
movsxd r12, dword [rdx]
cmovl edi, dword [r14 + 0xc]
cmp byte [rsi + 0x120], 0
mov ebx, edi
jne 0x1800165af
movaps xmm8, xmm13
movaps xmm9, xmm14
andps xmm8, xmm12
andps xmm9, xmm12
movaps xmm0, xmm8
movaps xmm1, xmm10
unpcklps xmm0, xmm9
movq r8, xmm0
movaps xmm0, xmm7
call fcn.1800154e0
test al, al
je 0x18001650b
movaps xmm0, xmm8
movaps xmm1, xmm7
unpcklps xmm0, xmm9
movq r8, xmm0
movaps xmm0, xmm7
call fcn.1800154e0
test al, al
jne 0x1800165a8
mov rax, qword [rsi + 0x10]
movaps xmm0, xmm8
unpcklps xmm0, xmm9
movaps xmm1, xmm10
movq r8, xmm0
movaps xmm0, xmm7
mov rax, qword [rax + r15*8]
lea rdi, [rax + r12*4]
call fcn.1800154e0
mov rcx, rdi
test al, al
je 0x1800164fb
mov edx, ebx
call fcn.1800ae7c0
jmp 0x1800165a8
mov r8d, ebx
movaps xmm1, xmm7
call fcn.1800afff0
jmp 0x1800165a8
mov rax, qword [rsi + 0x10]
movaps xmm1, xmm11
movd xmm0, ebx
sub ebx, 1
cvtdq2ps xmm0, xmm0
mov rax, qword [rax + r15*8]
lea rdx, [rax + r12*4]
divss xmm1, xmm0
js 0x1800165a8
cmp edi, 4
jl 0x18001658c
mov ecx, edi
shr rcx, 2
mov eax, ecx
neg eax
lea ebx, [rbx + rax*4]
nop dword [rax]
movaps xmm0, xmm6
addss xmm6, xmm1
mulss xmm0, dword [rdx]
movss dword [rdx], xmm0
movaps xmm0, xmm6
mulss xmm0, dword [rdx + 4]
addss xmm6, xmm1
movss dword [rdx + 4], xmm0
movaps xmm0, xmm6
addss xmm6, xmm1
mulss xmm0, dword [rdx + 8]
movss dword [rdx + 8], xmm0
movaps xmm0, xmm6
mulss xmm0, dword [rdx + 0xc]
addss xmm6, xmm1
movss dword [rdx + 0xc], xmm0
add rdx, 0x10
sub rcx, 1
jne 0x180016540
test ebx, ebx
js 0x1800165a8
movaps xmm0, xmm6
addss xmm6, xmm1
mulss xmm0, dword [rdx]
movss dword [rdx], xmm0
add rdx, 4
sub ebx, 1
jns 0x180016590
mov rdx, qword [rbp + 0x110]
sub r15, 1
jns 0x180016450
movaps xmm14, xmmword [rsp + 0x130]
lea rdx, [r14 + 8]
movaps xmm13, xmmword [rsp + 0x140]
movaps xmm12, xmmword [rsp + 0x150]
movaps xmm11, xmmword [rsp + 0x160]
movaps xmm10, xmmword [rsp + 0x170]
movaps xmm9, xmmword [rsp + 0x180]
movaps xmm8, xmmword [rsp + 0x190]
movaps xmm7, xmmword [rsp + 0x1a0]
movaps xmm6, xmmword [rsp + 0x1b0]
mov r8d, dword [r14 + 0xc]
cmp r8d, 0x100
jle 0x180016630
mov edx, dword [rdx]
add r8d, 0xffffff00
mov rcx, qword [r14]
add edx, 0x100
call fcn.180015cf0
mov rdi, qword [rsp + 0x1d8]
mov rbx, qword [rsp + 0x1e8]
mov rsi, qword [rsp + 0x1e0]
mov r12, qword [rsp + 0x1d0]
add rsp, 0x1f0
pop r15
pop r14
pop rbp
ret
mov rcx, qword [rdx]
test rcx, rcx
je 0x180016671
mov r8d, dword [rdx + 0xc]
mov edx, dword [rdx + 8]
call fcn.180015cf0
mov eax, 1
xchg byte [r15 + 0x19], al
add rsp, 0x1f0
pop r15
pop r14
pop rbp
ret