Function at 0x1800158c0
Capabilities:
Check for software breakpoints

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x200]
sub rsp, 0x300
movaps xmmword [rsp + 0x2f0], xmm6
mov rax, qword [0x180106b38]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov rbx, qword [rbp + 0x270]
mov rsi, r8
mov eax, dword [rbp + 0x268]
mov rdi, rdx
mov r14, qword [rbp + 0x260]
mov r12, rcx
movups xmm6, xmmword [rbp - 0x60]
movzx r13d, byte [rsp + 0x30]
mov r15d, eax
mov qword [rsp + 0x60], rbx
xor r8d, r8d
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x78], rcx
add eax, 0x227
lea rdx, [0x180000000]
mov r11d, 0xffffc901
movabs r10, 0x100003600
cmp r15d, eax
jae case.0x18001598d.69
cmp r15d, 0x158
ja case.0x18001598d.83
je 0x180015f0b
lea eax, [r15 - 0x42]
cmp eax, 0xf9
ja case.0x18001598d.83
movzx eax, byte [rdx + rax + 0x16068]
mov ecx, dword [rdx + rax*4 + 0x16020]
add rcx, rdx
jmp rcx
call qword [sym.imp.WINMM.dll_joyGetNumDevs]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x70], 0xffffffff80000001
call qword [sym.imp.WINMM.dll_mixerGetNumDevs]
mov dword [rsp + 0x40], eax
jmp 0x180015eef
movzx eax, word [0x1800ed628]
movsd xmm0, qword [str.y32.]
mov word [rbp - 0x2e], ax
lea rax, [rbp - 0x40]
sub rax, 2
movsd qword [rbp - 0x36], xmm0
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1800159d4
movsd xmm0, qword [0x1800ebd48]
add r15d, 0x1d
mov rbx, qword [rsp + 0x60]
movsd qword [rax], xmm0
mov eax, dword [rbp + 0x268]
mov byte [rsp + 0x30], 1
jmp 0x180015934
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_SHRegDuplicateHKey]
jmp 0x180015eef
mov rax, qword [r9]
add r15d, 0x1d
mov rbx, qword [rsp + 0x60]
mov qword [r12], rax
mov eax, dword [rbp + 0x268]
jmp 0x180015934
cmp byte [rsp + 0x30], 0
je case.0x18001598d.83
mov r12, qword [rsp + 0x58]
mov ebx, 0xc
mov eax, ebx
sub eax, 0xc
je 0x180015a69
cmp eax, 1
jne 0x180015a6c
xorps xmm0, xmm0
lea rdx, [rbp - 0x80]
mov ecx, r12d
movups xmmword [rbp - 0x80], xmm0
call qword [sym.imp.WINMM.dll_joyGetPos]
xor r8d, r8d
jmp 0x180015a6c
mov r12, r8
inc ebx
cmp ebx, 0xe
jb 0x180015a44
mov r9, qword [rsp + 0x38]
add r15d, 0x1d
mov rbx, qword [rsp + 0x60]
mov eax, dword [rbp + 0x268]
mov qword [rsp + 0x58], r12
mov r12, qword [rsp + 0x78]
jmp 0x180015934
mov rbx, qword [rsp + 0x60]
mov r13b, 1
mov eax, dword [rbp + 0x268]
add r15d, 0x1d
jmp 0x180015934
mov ecx, 0x15
jmp 0x180015bf8
mov rdx, qword [rsi]
cmp rdx, qword [r9]
jae case.0x18001598d.83
movzx ecx, byte [rdx + rbx]
cmp cl, 0x29
jne 0x180015b6f
mov ebx, 0xd2
nop word [rax + rax]
mov eax, ebx
sub eax, 0xce
je 0x180015c70
sub eax, 1
je 0x180015b3f
sub eax, 1
je 0x180015b1f
sub eax, 1
je 0x180015b16
cmp eax, 1
jne 0x180015b46
mov rax, qword [rdi + 0x78]
mov rcx, qword [rax + 0x18]
sub rcx, qword [r14 + 8]
add rcx, qword [rsi]
mov qword [r14 + 0x10], rcx
jmp 0x180015b46
mov dword [r14], 7
jmp 0x180015b46
inc qword [rdi + 0xd0]
mov rax, qword [rdi + 0xc0]
test rax, rax
je 0x180015b46
mov rdx, r14
mov rcx, rdi
call rax
xor r8d, r8d
jmp 0x180015b46
mov dword [rdi + 0x88], r8d
dec ebx
cmp ebx, 0xcd
ja 0x180015ae0
mov rbx, qword [rsp + 0x60]
movabs r10, 0x100003600
mov r9, qword [rsp + 0x38]
mov r11d, 0xffffc901
jmp 0x180015c4a
cmp cl, 0x20
ja 0x180015bc5
movsx rax, cl
bt r10, rax
jae 0x180015bc5
mov edx, 0x40
cmp edx, 0x40
je 0x180015b95
cmp edx, 0x106
jne 0x180015bb2
inc qword [rsi]
jmp 0x180015bed
mov rax, qword [rdi + 0x78]
mov dword [rdi + 0x88], 0x5e
mov rcx, qword [rax + 0x18]
sub rcx, qword [r14 + 8]
add rcx, qword [rsi]
mov qword [r14 + 0x10], rcx
add edx, 0xc6
cmp edx, 0x1cc
jb 0x180015b83
jmp 0x180015c4a
cmp cl, 0x22
je 0x180015c1e
lea eax, [rcx - 0x27]
cmp al, 1
jbe 0x180015c1e
cmp cl, 0x1f
ja 0x180015bdc
bt r11d, ecx
jb 0x180015c1e
cmp cl, 0x7f
je 0x180015c1e
cmp cl, 0x5c
jne 0x180015c4a
lea rax, [rdx + 1]
mov qword [rsi], rax
mov ecx, 0x15
add ecx, 0x92
cmp ecx, 0x1cb
jae case.0x18001598d.68
cmp ecx, 0x15
je 0x180015bed
cmp ecx, 0xa7
je 0x180015c7d
cmp ecx, 0x139
jne 0x180015bf2
jmp case.0x18001598d.69
mov ecx, 0xc3
mov eax, ecx
sub eax, 0xc3
je 0x180015c33
cmp eax, 1
je 0x180015bed
jmp 0x180015c40
mov dword [rdi + 0x88], 0x60
inc qword [rsi]
inc ecx
cmp ecx, 0xc5
jb 0x180015c23
mov rdx, qword [rsi]
inc rdx
mov qword [rsi], rdx
cmp rdx, qword [r9]
jb 0x180015ac3
mov rbx, qword [rsp + 0x60]
add r15d, 0x1d
mov eax, dword [rbp + 0x268]
jmp 0x180015934
inc qword [rsi]
mov r9, qword [rsp + 0x38]
jmp 0x180015bed
mov rax, qword [rsi]
mov r15d, 0xbd
mov qword [r12], rax
jmp 0x180015bf2
mov rbx, qword [rsp + 0x60]
add r15d, 0x1d
mov eax, dword [rbp + 0x268]
mov word [rbp - 0x40], r8w
jmp 0x180015934
cmp byte [rdi + 4], 0
lea rcx, [rbp - 0x20]
je 0x180015cff
movss xmm2, dword [rdi]
lea rdx, str._0.4f
cvtps2pd xmm2, xmm2
movq r8, xmm2
call fcn.1800bf2e0
mov rcx, qword [r14]
lea rdx, [rbp - 0x20]
cdqe
mov r9d, 0x10a
mov qword [rsp + 0x48], rax
mov r8, rbx
lea rax, [rsp + 0x48]
mov qword [rsp + 0x50], rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.180080310
jmp 0x180015eef
mov r8d, dword [rdi]
lea rdx, [0x1800e85ac]
call fcn.1800bf2e0
mov rcx, qword [r14]
lea rdx, [rbp - 0x20]
cdqe
mov r9d, 0x10a
mov qword [rsp + 0x50], rax
mov r8, rbx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call fcn.180080310
jmp 0x180015eef
test rdi, rdi
je case.0x18001598d.69
mov rbx, qword [rsp + 0x60]
add r15d, 0x1d
mov eax, dword [rbp + 0x268]
jmp 0x180015934
mov edx, 0xb7
lea rcx, [rbp - 0x40]
lea r8d, [rdx + 0x24]
call fcn.1800355e0
movzx ecx, byte [rsp + 0x30]
xor r8d, r8d
cmp qword [rsp + 0x58], 0xf
mov edx, r8d
mov r9, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x60]
cmovbe edx, ecx
mov byte [rsp + 0x30], dl
mov edx, r8d
cmp dword [rsp + 0x40], edx
movzx ecx, r13b
cmovne edx, ecx
mov qword [rsp + 0x68], rax
mov eax, dword [rbp + 0x268]
movzx r13d, dl
add r15d, 0x1d
jmp 0x180015934
mov rax, qword [rdi + 0x78]
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x28], rbx
mov r8d, 0xda
mov qword [rsp + 0x20], rdi
mov rcx, qword [rax + 0x18]
sub rcx, qword [r14 + 8]
add rcx, qword [rsi]
mov qword [r14 + 0x10], rcx
lea rcx, [rbp - 0x80]
mov rax, qword [r9]
lea r9, [rsp + 0x48]
mov qword [rsp + 0x50], rax
mov rax, qword [rsi]
mov qword [rbp - 0x80], rax
mov eax, dword [rdi + 0x8c]
mov dword [rsp + 0x48], eax
call fcn.180018860
jmp 0x180015eef
lea rax, [rbp - 0x40]
sub rax, 2
nop word [rax + rax]
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x180015e20
movsd xmm0, qword [0x1800ed630]
lea rdx, [0x1800ed638]
mov r8d, 2
movsd qword [rax], xmm0
lea rcx, [rbp - 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
jmp 0x180015eef
mov eax, dword [rdi]
cmp eax, 2
jne 0x180015e5f
mov dword [rbp - 0x70], eax
jmp 0x180015e9c
cmp eax, 3
jne 0x180015e94
movsd xmm0, qword [rdi + 8]
add r15d, 0x1d
mov rbx, qword [rsp + 0x60]
mov dword [rbp - 0x70], eax
mov eax, dword [rbp + 0x268]
movsd qword [rbp - 0x68], xmm0
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [r12], xmm0
movups xmmword [r12 + 0x10], xmm6
jmp 0x180015934
cmp eax, 1
jne 0x180015ea2
mov dword [rbp - 0x70], eax
mov eax, dword [rdi + 8]
mov dword [rbp - 0x68], eax
movups xmm0, xmmword [rbp - 0x70]
mov rbx, qword [rsp + 0x60]
add r15d, 0x1d
mov eax, dword [rbp + 0x268]
movups xmmword [r12], xmm0
movups xmmword [r12 + 0x10], xmm6
jmp 0x180015934
movsxd rax, dword [rdi + 8]
cmp eax, 0x1e
jge case.0x18001598d.83
mov rcx, qword [rdx + rax*8 + 0xffd10]
mov rdx, 0xffffffffffffffff
nop dword [rax]
inc rdx
cmp byte [rcx + rdx], 0
jne 0x180015ee0
mov r8, rbx
call qword [r14]
mov r9, qword [rsp + 0x38]
xor r8d, r8d
mov rbx, qword [rsp + 0x60]
add r15d, 0x1d
mov eax, dword [rbp + 0x268]
jmp 0x180015934
mov eax, 0x77
cmp eax, 0x77
je 0x180015f26
add eax, 0x9a
cmp eax, 0x111
jb 0x180015f10
jmp case.0x18001598d.69
test r13b, r13b
je 0x180015fdd
mov rsi, qword [rsp + 0x68]
mov edi, 0xb1
mov r14d, dword [rsp + 0x48]
nop
mov eax, edi
sub eax, 0xb0
je 0x180015f62
cmp eax, 1
jne 0x180015fcf
mov rsi, r8
mov dword [rsp + 0x40], r8d
mov r14d, 0x80000000
jmp 0x180015fcf
mov r8d, r14d
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.WINMM.dll_mixerGetID]
movzx r13d, r13b
mov r8d, 0
test eax, eax
cmovne r13d, r8d
test r13b, r13b
je 0x180015fcf
mov ebx, 0xd0
nop dword [rax]
mov eax, ebx
sub eax, 0xd0
je 0x180015fb2
cmp eax, 0x16
jne 0x180015fc1
mov ecx, dword [rsp + 0x40]
lea r8d, [rax + 0x1a]
lea rdx, [rbp - 0x70]
call qword [sym.imp.WINMM.dll_mixerGetDevCapsA]
jmp 0x180015fc1
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
add ebx, 0x16
cmp ebx, 0xfc
jb 0x180015f90
xor r8d, r8d
dec edi
cmp edi, 0xaf
ja 0x180015f40
call qword [rsp + 0x68]
cmp eax, 1
sete al
mov byte [r12], al
mov rax, r12
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.1800bfc40
mov rbx, qword [rsp + 0x340]
movaps xmm6, xmmword [rsp + 0x2f0]
add rsp, 0x300
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret