Function at 0x18007af70
Capabilities:
Get file size
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x138]
sub rsp, 0x200
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
mov rax, qword [0x180135928]
xor rax, rsp
mov qword [rbp + 0xc8], rax
mov eax, ecx
mov dword [rbp - 0x7c], ecx
mov r12d, ecx
mov dword [rsp + 0x50], ecx
imul ecx, ecx, 0xb18
mov r14, r8
mov qword [rbp - 0x58], r9
mov r10, rdx
mov rbx, qword [rbp - 0x58]
mov qword [rbp - 0x30], r8
mov qword [rsp + 0x68], rdx
mov dword [rsp + 0x54], ecx
mov r11d, dword [rsp + 0x54]
mov edi, dword [rsp + 0x54]
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x70], edi
mov qword [rbp - 0x38], rbx
cmp eax, ecx
ja 0x18007b6e2
mov ecx, dword [rsp + 0x54]
xorps xmm7, xmm7
mov r8, qword [rbp - 0x58]
movzx edx, byte [rsp + 0x40]
movsd xmm8, qword [0x18011da78]
mov rsi, qword [rbp - 8]
mov r13, qword [rbp - 0x28]
movsd xmm6, qword [rbp - 0x28]
mov r12d, dword [rbp - 0x78]
mov r15d, dword [rbp - 0x78]
mov dword [rsp + 0x5c], ecx
movzx ecx, byte [rsp + 0x40]
mov byte [rsp + 0x4c], cl
mov ecx, dword [rsp + 0x54]
mov dword [rsp + 0x44], ecx
mov qword [rbp - 0x50], r8
mov dword [rsp + 0x58], edx
jmp 0x18007b054
mov r8, qword [rbp - 0x50]
cmp eax, 0xa676
ja 0x18007b357
je 0x18007b342
cmp eax, 0x1c7d
ja 0x18007b28b
je 0x18007b13b
sub eax, 0x33
je 0x18007b12a
sub eax, 0x74
je 0x18007b110
sub eax, 0x28
je 0x18007b0fd
sub eax, 0x33
je 0x18007b0b0
mov r8d, dword [rsp + 0x44]
cmp eax, 0x28
mov eax, dword [rsp + 0x50]
jne 0x18007b25a
mov rbx, r14
mov qword [rbp - 0x38], rbx
jmp 0x18007b25a
cmp qword [r14 + 0x18], 8
mov rcx, r14
jb 0x18007b0bd
mov rcx, qword [r14]
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov edx, 0x80000000
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
lea r8d, [rax + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r11d, dword [rsp + 0x48]
mov r10, qword [rsp + 0x68]
mov qword [rbp - 0x50], rax
mov eax, dword [rsp + 0x50]
jmp 0x18007b255
xor eax, eax
mov r10d, eax
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x50]
jmp 0x18007b255
mov eax, dword [rsp + 0x50]
mov dword [rbp + 0x80], 0x646e6573
mov byte [rbp + 0x84], 0
jmp 0x18007b255
mov r13, qword [r10 + 0x10]
movaps xmm6, xmm8
mov eax, dword [rsp + 0x50]
jmp 0x18007b255
xor ecx, ecx
mov r14d, ecx
cmp dword [r10 + 0x2c], ecx
jbe 0x18007b251
nop word [rax + rax]
mov edi, 0x75
mov eax, edi
sub eax, 0x75
je 0x18007b206
cmp eax, 1
jne 0x18007b21a
test rsi, rsi
je 0x18007b200
mov eax, dword [rsi + 0x10]
test eax, 0x1e0
jne 0x18007b200
test al, 4
je 0x18007b191
mulsd xmm6, qword [rsi]
mov r13, qword [r13 + 0x48]
jmp 0x18007b21a
test al, 0xa
je 0x18007b1a8
mov r13, qword [r13 + 0x48]
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsi + 8]
mulsd xmm6, xmm0
jmp 0x18007b21a
test al, 1
je 0x18007b200
cmp dword [rsi + 0x30], 0
jbe 0x18007b200
mov ebx, 0x40
mov eax, ebx
sub eax, 0x40
je 0x18007b1ca
cmp eax, 0x49
jne 0x18007b1f5
mulsd xmm6, qword [rbp - 0x18]
jmp 0x18007b1f5
mov eax, dword [rsi + 0x30]
lea rdx, [rbp - 0x18]
mov r8, qword [rsi + 0x28]
mov r9d, 0x3a
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x78]
movsd qword [rbp - 0x18], xmm7
mov dword [rsp + 0x78], eax
call fcn.18002a820
xor ecx, ecx
add ebx, 0x49
cmp ebx, 0xd2
jb 0x18007b1b7
mov r13, qword [r13 + 0x48]
jmp 0x18007b21a
xor r9d, r9d
mov rdx, r13
xor ecx, ecx
lea r8d, [r9 + 0x5c]
call fcn.1800f4320
mov rsi, rax
inc edi
mov ecx, 0
cmp edi, 0x77
jb 0x18007b155
mov r10, qword [rsp + 0x68]
inc r14d
mov qword [rbp - 8], rsi
cmp r14d, dword [r10 + 0x2c]
jb 0x18007b150
mov eax, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x48]
mov rbx, qword [rbp - 0x38]
mov edi, dword [rsp + 0x70]
mov r14, qword [rbp - 0x30]
mov r8d, dword [rsp + 0x44]
imul ecx, dword [rbp - 0x7c], 0x8e
mov edx, dword [rsp + 0x58]
mov r9, qword [rbp - 0x58]
add eax, ecx
mov dword [rsp + 0x50], eax
cmp eax, dword [rsp + 0x54]
jbe 0x18007b050
mov r12d, dword [rbp - 0x7c]
mov rdx, qword [rbp - 0x50]
mov r9d, dword [rsp + 0x5c]
jmp 0x18007b707
cmp eax, 0x38c7
je 0x18007b30c
cmp eax, 0x5d49
je 0x18007b2e0
cmp eax, 0x73a1
je 0x18007b2b3
mov r8d, dword [rsp + 0x44]
cmp eax, 0x901e
jne 0x18007b25a
mov byte [rsp + 0x4c], 1
jmp 0x18007b25a
mov r8, r14
mov dword [rsp + 0x78], 2
mov edx, 0x75
lea rcx, [rsp + 0x78]
call fcn.1800d2280
mov eax, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x48]
mov r10, qword [rsp + 0x68]
jmp 0x18007b255
mov eax, dword [0x18011c108]
mov dword [rbp + 0x88], eax
movzx eax, word [0x18011c10c]
mov word [rbp + 0x8c], ax
xor eax, eax
mov word [rbp + 0x8e], ax
mov eax, dword [rsp + 0x50]
jmp 0x18007b255
xor eax, eax
movsd qword [rsp + 0x78], xmm6
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8d, 0x9c
lea rcx, [rsp + 0x78]
mov rdx, r14
call fcn.1800fb7c0
mov eax, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x48]
mov r10, qword [rsp + 0x68]
jmp 0x18007b255
mov edi, 0x5bd1e995
mov dword [rbp - 0x64], IsCharSpaceW
mov dword [rsp + 0x70], edi
jmp 0x18007b255
cmp eax, 0x1f10e
ja 0x18007b581
je 0x18007b56c
cmp eax, 0xb9eb
je 0x18007b525
cmp eax, 0x11f3a
je 0x18007b3ab
cmp eax, 0x14bc2
je 0x18007b39b
mov r8d, dword [rsp + 0x44]
cmp eax, 0x1ae56
jne 0x18007b25a
xor ecx, ecx
mov dword [rbp - 0x48], ecx
jmp 0x18007b25a
mov r11d, dword [r10]
xor r11d, dword [r9]
mov dword [rsp + 0x48], r11d
jmp 0x18007b255
cmp r8, 0xffffffffffffffff
jne 0x18007b515
xor r8d, r8d
mov edi, r8d
mov dword [rsp + 0x78], r8d
cmp edi, 7
ja case.default.0x18007b3dd
lea r9, [0x180000000]
mov eax, edi
mov ecx, dword [r9 + rax*4 + 0x7bd90]
add rcx, r9
jmp rcx
mov byte [rsp + 0x40], 1
mov qword [rbp - 0x20], r8
jmp case.default.0x18007b3dd
test dl, dl
je case.default.0x18007b3dd
mov rcx, qword [rbp - 0x10]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [rsp + 0x58]
jmp case.default.0x18007b3dd
mov edx, dword [rbp - 0x40]
mov r8d, 0x64
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov edx, dword [rsp + 0x58]
mov qword [rbp - 0x10], rax
jmp case.default.0x18007b3dd
mov dl, 1
jmp 0x18007b4de
mov dword [rbp - 0x40], 0x64
call qword [sym.imp.WINMM.dll_midiOutGetNumDevs]
mov edx, dword [rsp + 0x58]
mov dword [rbp - 0x68], eax
jmp case.default.0x18007b3dd
cmp byte [rsp + 0x40], 0
je 0x18007b4b8
mov edi, dword [rbp - 0x70]
mov ebx, 0x125
mov eax, ebx
sub eax, 0x123
je 0x18007b490
sub eax, 1
je 0x18007b46f
cmp eax, 1
jne 0x18007b4a3
mov r12d, r8d
jmp 0x18007b4a3
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x20], xmm0
mov dword [rbp + 0x70], eax
movups xmmword [rbp + 0x30], xmm0
lea edi, [rax + 0x54]
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
jmp 0x18007b4a3
mov ecx, r12d
lea rdx, [rbp + 0x20]
mov r8d, edi
call qword [sym.imp.WINMM.dll_midiOutGetDevCapsW]
xor r8d, r8d
dec ebx
cmp ebx, 0x122
ja 0x18007b457
mov edx, dword [rsp + 0x58]
mov dword [rbp - 0x70], edi
mov edi, dword [rsp + 0x78]
mov byte [rsp + 0x60], 0
jmp case.default.0x18007b3dd
cmp dword [rbp - 0x68], 0
mov ecx, r8d
movzx eax, byte [rsp + 0x40]
cmovne ecx, eax
movzx edx, dl
cmp qword [rbp - 0x10], 0
mov byte [rsp + 0x40], cl
cmove edx, r8d
mov dword [rsp + 0x58], edx
inc edi
mov r8d, 0
mov dword [rsp + 0x78], edi
lea eax, [rdi + 0xd3]
cmp eax, 0xdb
jb 0x18007b3c0
mov eax, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x48]
mov rbx, qword [rbp - 0x38]
mov r10, qword [rsp + 0x68]
mov edi, dword [rsp + 0x70]
lea rcx, str.m_returnValues.perfdbPtr
mov qword [rbp - 0x28], rcx
jmp 0x18007b255
mov r8d, 3
lea rdx, [0x18011c154]
lea rcx, [rbp + 0x88]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
mov eax, dword [0x18011c1ac]
mov r11d, dword [rsp + 0x48]
mov r10, qword [rsp + 0x68]
mov dword [rbp + 0x94], eax
movzx eax, word [0x18011c1b0]
mov word [rbp + 0x98], ax
mov eax, dword [rsp + 0x50]
jmp 0x18007b255
mov r10d, dword [r10]
shr r10d, 2
mov dword [rbp - 0x80], r10d
mov r10, qword [rsp + 0x68]
jmp 0x18007b255
cmp eax, 0x23d72
je 0x18007b6c0
cmp eax, 0x2965a
je 0x18007b5d1
cmp eax, 0x2cc8e
je 0x18007b5c7
cmp eax, 0x35baa
jne 0x18007b255
mov edx, dword [rsp + 0x5c]
xor r8d, r8d
mov rcx, r10
call fcn.1800d69a0
mov eax, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x48]
mov r10, qword [rsp + 0x68]
jmp 0x18007b255
xor ecx, ecx
mov dword [rbp - 0x78], ecx
jmp 0x18007b255
mov r10d, dword [rbp - 0x80]
xor ecx, ecx
mov r9d, ecx
test r10d, r10d
je 0x18007b6a9
mov esi, dword [rbp - 0x60]
lea r14, [0x180000000]
nop dword [rax]
mov r10d, dword [rbp - 0x64]
mov edx, 9
lea r8d, [rdx + 1]
nop dword [rax]
cmp edx, 9
ja case.default.0x18007b612
mov eax, edx
mov ecx, dword [r14 + rax*4 + 0x7bdb0]
add rcx, r14
jmp rcx
xor r11d, r15d
jmp case.default.0x18007b612
shl r15d, 8
jmp case.default.0x18007b612
imul r15d, edi
imul r11d, edi
jmp case.default.0x18007b612
lea eax, [rsi + 3]
movzx r15d, byte [rax + rbx]
jmp case.default.0x18007b612
lea eax, [rsi + 1]
shl r15d, 8
movzx eax, byte [rax + rbx]
or r15d, eax
jmp case.default.0x18007b612
imul r15d, edi
jmp case.default.0x18007b612
mov eax, r15d
mov ecx, r10d
shr eax, cl
xor r15d, eax
jmp case.default.0x18007b612
mov eax, esi
movzx ecx, byte [rax + rbx]
or r15d, ecx
jmp case.default.0x18007b612
lea eax, [rsi + 2]
shl r15d, 8
movzx eax, byte [rax + rbx]
or r15d, eax
jmp case.default.0x18007b612
lea esi, [r9*4]
dec edx
sub r8, 1
jne 0x18007b600
mov r10d, dword [rbp - 0x80]
inc r9d
mov dword [rsp + 0x48], r11d
mov dword [rbp - 0x60], esi
cmp r9d, r10d
jb 0x18007b5f0
mov rsi, qword [rbp - 8]
mov eax, dword [rsp + 0x50]
mov r14, qword [rbp - 0x30]
lea r8d, [r10*4]
mov r10, qword [rsp + 0x68]
mov dword [rsp + 0x44], r8d
jmp 0x18007b25a
xor edx, edx
mov rcx, r8
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r11d, dword [rsp + 0x48]
mov r10, qword [rsp + 0x68]
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x50]
jmp 0x18007b255
mov rdx, qword [rbp - 0x58]
movzx ecx, byte [rsp + 0x40]
mov r9d, dword [rsp + 0x54]
mov r8d, dword [rsp + 0x54]
mov qword [rbp - 0x50], rdx
mov byte [rsp + 0x4c], cl
mov dword [rsp + 0x5c], r9d
mov dword [rsp + 0x44], r8d
lea eax, [r12 + 0x13]
mov dword [rbp - 0x68], eax
cmp r12d, eax
jae case.0x18007b763.172
mov r15d, dword [rbp - 0x78]
movzx esi, byte [rsp + 0x40]
mov r13, qword [rbp - 0x28]
nop word [rax + rax]
lea eax, [r12 - 0xa7]
cmp eax, 0x87
ja case.0x18007b763.173
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x7be20]
mov ecx, dword [rcx + rax*4 + 0x7bdd8]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
cmp dword [rsp + 0x54], 0xffffffff
jne case.0x18007b763.264
mov ecx, 0xe8
mov eax, ecx
sub eax, 0xe7
je case.0x18007b763.172
cmp eax, 1
jne 0x18007b788
mov byte [rsp + 0x60], 0
dec ecx
cmp ecx, 0xe6
ja 0x18007b771
mov byte [rsp + 0x60], 1
jmp case.0x18007b763.173
xor eax, eax
mov word [rbp + 0x9a], ax
jmp case.0x18007b763.173
cmp qword [r10 + 0x18], 0x10
mov rdx, r10
jb 0x18007b7b7
mov rdx, qword [r10]
mov r8d, dword [r10 + 0x10]
xor r9d, r9d
mov rcx, qword [r14]
call qword [rbp - 0x20]
mov dword [rsp + 0x54], eax
jmp 0x18007bd24
mov eax, r11d
shr eax, 0xf
xor r11d, eax
mov dword [rsp + 0x48], r11d
jmp case.0x18007b763.173
mov r9d, dword [r10]
mov edx, r9d
sub edx, r8d
je case.0x18007b763.173
mov r8d, 0x20
mov eax, r8d
sub eax, 0x20
je 0x18007b82f
sub eax, 1
je 0x18007b80d
cmp eax, 1
jne 0x18007b842
imul r11d, edi
jmp 0x18007b842
cmp edx, 2
jb 0x18007b820
lea eax, [r9 - 2]
movzx eax, byte [rax + rbx]
shl eax, 8
xor r11d, eax
cmp edx, 1
jb 0x18007b842
lea eax, [r9 - 1]
movzx eax, byte [rax + rbx]
jmp 0x18007b83f
cmp edx, 3
jb 0x18007b842
lea eax, [r9 - 3]
movzx eax, byte [rax + rbx]
shl eax, 0x10
xor r11d, eax
inc r8d
cmp r8d, 0x23
jb 0x18007b7f5
mov dword [rsp + 0x48], r11d
jmp 0x18007bd29
mov dword [rbp + 0x9a], 0x6c
jmp case.0x18007b763.173
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r8, [rbp]
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x28]
call sub.RPCRT4.dll_MesEncodeDynBufferHandleCreate
mov dword [rbp - 0x64], eax
jmp 0x18007bd24
cmp r9d, dword [rbp - 0x48]
je case.0x18007b763.173
mov r12d, 0xe8
mov dword [rsp + 0x78], r12d
nop dword [rax + rax]
cmp r12d, 0x4e8f8
ja 0x18007b9d1
je 0x18007b9c9
cmp r12d, 0x22f28
ja 0x18007b957
je 0x18007b946
cmp r12d, 0xe8
je 0x18007b935
cmp r12d, 0x8c78
je 0x18007b91a
cmp r12d, 0x11808
je 0x18007b8ff
cmp r12d, 0x1a398
jne 0x18007bc5c
mov eax, 0x73
mov word [rbp + 0xae], ax
jmp 0x18007bc5c
mov eax, 0x73
mov dword [rbp + 0xa8], 0x610070
mov word [rbp + 0xac], ax
jmp 0x18007bc5c
mov eax, 0x5f
mov dword [rbp + 0xa2], 0x6d0075
mov word [rbp + 0xa6], ax
jmp 0x18007bc5c
mov eax, 0x6e
mov word [rbp + 0xa0], ax
jmp 0x18007bc5c
mov eax, 0x5f
mov word [rbp + 0xb0], ax
jmp 0x18007bc5c
cmp r12d, 0x2bab8
je 0x18007b9b0
cmp r12d, 0x34648
je 0x18007b9a1
cmp r12d, 0x3d1d8
je 0x18007b992
cmp r12d, 0x45d68
jne 0x18007bc5c
xor eax, eax
mov byte [rsp + 0x40], 1
mov word [rbp + 0xc2], ax
jmp 0x18007bc5c
mov dword [rbp + 0xbe], 0x300020
jmp 0x18007bc5c
mov dword [rbp + 0xba], 0x3e0020
jmp 0x18007bc5c
mov dword [rbp + 0xb2], 0x65006c
mov dword [rbp + 0xb6], 0x740066
jmp 0x18007bc5c
mov sil, 1
jmp 0x18007bc5c
cmp r12d, 0x82e58
ja 0x18007baa4
je 0x18007ba8b
cmp r12d, 0x57488
je 0x18007ba76
cmp r12d, 0x60018
je 0x18007ba6c
cmp r12d, 0x68ba8
je 0x18007ba51
cmp r12d, 0x7a2c8
jne 0x18007bc5c
mov rcx, qword [rbp - 0x58]
lea rdx, [rbp - 0x80]
call qword [sym.imp.WINMM.dll_midiInGetID]
xor r9d, r9d
xor edx, edx
mov r15d, eax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], pe_nt_image_headers64
lea rcx, [rdx - 1]
lea r8d, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov qword [rbp - 0x40], rax
jmp 0x18007bc5c
xor eax, eax
mov qword [r10 + 0x10], rax
mov rax, r10
cmp qword [r10 + 0x18], 0x10
jb 0x18007ba64
mov rax, qword [r10]
mov byte [rax], 0
jmp 0x18007bc5c
xor eax, eax
mov dword [rbp - 0x80], eax
jmp 0x18007bc5c
xor eax, eax
xorps xmm0, xmm0
mov qword [rbp - 0x58], rax
movups xmmword [rbp + 8], xmm0
mov dword [rbp + 0x18], eax
jmp 0x18007bc5c
xor eax, eax
mov ecx, eax
movzx eax, byte [rsp + 0x40]
cmp qword [rbp - 0x40], rcx
cmovne ecx, eax
mov byte [rsp + 0x40], cl
jmp 0x18007bc5c
cmp r12d, 0x8b9e8
je 0x18007bc4d
cmp r12d, 0x94578
je 0x18007badf
cmp r12d, 0x9d108
je 0x18007bad5
cmp r12d, 0xa5c98
je case.0x18007b763.172
jmp 0x18007bc5c
mov byte [rsp + 0x60], 0
jmp 0x18007bc5c
cmp byte [rsp + 0x40], 0
je 0x18007bb1d
mov ebx, 4
nop dword [rax + rax]
mov eax, ebx
sub eax, 3
je 0x18007bb0c
cmp eax, 1
jne 0x18007bb16
mov rcx, qword [rbp - 0x40]
lea rdx, [rbp + 8]
call qword [sym.imp.KERNEL32.dll_GetCommTimeouts]
jmp 0x18007bb16
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
dec ebx
cmp ebx, 2
ja 0x18007baf0
test sil, sil
je 0x18007bc5c
mov r12d, dword [rbp - 0x60]
mov r14d, 0x124
mov eax, r14d
sub eax, 0x121
je 0x18007bb8c
sub eax, 1
je 0x18007bb7b
sub eax, 1
je 0x18007bb5b
cmp eax, 1
jne 0x18007bc32
xor eax, eax
mov qword [rbp - 0x70], rax
mov r12d, eax
jmp 0x18007bc32
mov edx, dword [rbp - 0x80]
lea rcx, [rbp - 0x70]
xor r9d, r9d
mov dword [rsp + 0x20], r12d
xor r8d, r8d
call qword [sym.imp.WINMM.dll_midiOutOpen]
mov r15d, eax
jmp 0x18007bc32
test r15d, r15d
je 0x18007bc32
xor sil, sil
jmp 0x18007bc32
test sil, sil
je 0x18007bc32
mov edi, 0xee
nop word [rax + rax]
mov eax, edi
sub eax, 0xec
je 0x18007bc05
sub eax, 1
je 0x18007bbcc
cmp eax, 1
jne 0x18007bc24
mov rcx, qword [rbp - 0x70]
xor eax, eax
xor r8d, r8d
xor edx, edx
mov r13d, eax
call qword [sym.imp.WINMM.dll_midiConnect]
mov r15d, eax
jmp 0x18007bc24
test r15d, r15d
je 0x18007bc24
mov ebx, 0xd3
cmp ebx, 0xd3
je 0x18007bbeb
cmp ebx, 0x872c
jne 0x18007bbf5
xor sil, sil
jmp 0x18007bbf5
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.WINMM.dll_midiOutClose]
add ebx, 0x8659
cmp ebx, 0x10cb2
jbe 0x18007bbd6
jmp 0x18007bc24
test sil, sil
je 0x18007bc24
mov rcx, qword [rbp - 0x70]
xor r8d, r8d
mov rdx, r13
call qword [sym.imp.WINMM.dll_midiDisconnect]
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.WINMM.dll_midiOutClose]
dec edi
cmp edi, 0xeb
ja 0x18007bba0
dec r14d
cmp r14d, 0x120
ja 0x18007bb30
mov dword [rbp - 0x60], r12d
mov r12d, dword [rsp + 0x78]
jmp 0x18007bc5c
test r15d, r15d
movzx esi, sil
mov eax, 0
cmovne esi, eax
mov r10, qword [rsp + 0x68]
add r12d, 0x8b90
mov dword [rsp + 0x78], r12d
cmp r12d, 0xae740
jbe 0x18007b8a0
mov rbx, qword [rbp - 0x38]
mov edi, dword [rsp + 0x70]
mov r12d, dword [rbp - 0x7c]
jmp 0x18007bd24
xor eax, eax
mov ecx, eax
movzx eax, byte [rsp + 0x4c]
cmp dword [rbp - 0x64], ecx
cmove ecx, eax
mov byte [rsp + 0x4c], cl
jmp case.0x18007b763.173
mov eax, r11d
shr eax, 0xd
xor r11d, eax
imul r11d, edi
mov dword [rsp + 0x48], r11d
jmp case.0x18007b763.173
mov dword [rsp + 0x60], r11d
jmp case.0x18007b763.173
cmp byte [rsp + 0x4c], 0
je case.0x18007b763.173
mov rcx, qword [rbp]
call sub.RPCRT4.dll_MesHandleFree
jmp 0x18007bd24
xor eax, eax
lea r8, [rbp + 0x88]
mov r9d, 0x94
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0x80]
xor ecx, ecx
call fcn.1800e4330
mov qword [rbp - 0x20], rax
jmp 0x18007bd24
cmp qword [r10 + 0x18], 0x10
mov rdx, r10
jb 0x18007bd05
mov rdx, qword [r10]
mov r8d, dword [rsp + 0x5c]
lea r9, [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
xor r14d, r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov qword [rbp], r14
mov r11d, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x68]
inc r12d
mov r14, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x50]
mov r9d, dword [rsp + 0x5c]
mov dword [rbp - 0x7c], r12d
cmp r12d, dword [rbp - 0x68]
jb 0x18007b730
mov eax, dword [rsp + 0x60]
mov rcx, qword [rbp + 0xc8]
xor rcx, rsp
call fcn.180106610
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret