Function at 0x18000e3e0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x450]
sub rsp, 0x550
mov rax, qword [0x180046bd8]
xor rax, rsp
mov qword [rbp + 0x440], rax
mov r13, qword [rbp + 0x4b0]
lea edi, [rcx - 0xc]
mov rsi, qword [rbp + 0x4b8]
mov r15, r9
mov r9, qword [rbp + 0x28]
mov r12, r8
mov r8, qword [rbp + 0x4d0]
mov r10, rdx
mov r14, qword [rbp + 0x4c8]
mov ebx, ecx
mov qword [rbp + 8], rdx
mov rdx, qword [rbp + 0x4c0]
mov qword [rbp + 0x220], rdx
mov qword [rbp], r8
mov qword [rbp - 8], r9
mov dword [rbp + 0x20], ecx
mov dword [rbp - 0x30], ecx
mov dword [rbp - 0x48], edi
cmp ecx, edi
jbe 0x18000f59a
mov eax, dword [rbp - 0x48]
mov ecx, dword [rbp - 0x48]
mov dword [rbp - 0x80], eax
mov rax, qword [rbp + 0x28]
mov qword [rbp - 0x40], rax
mov eax, dword [rbp - 0x48]
mov dword [rbp + 0x1c], ecx
mov ecx, dword [rbp - 0x48]
mov dword [rbp + 0x14], eax
mov dword [rbp + 0x18], ecx
lea eax, [rbx - 0x94]
lea r11, [0x180000000]
cmp eax, 0x12
ja case.default.0x18000e746
mov ecx, dword [r11 + rax*4 + 0xfb18]
add rcx, r11
jmp rcx
xor eax, eax
mov r11d, 0xa
mov dword [rbp + 0x30], eax
mov dword [rbp - 0x80], r11d
jmp 0x18000f41d
mov eax, dword [r12]
lea r9, [rbp - 0x68]
mov dword [rbp - 0x60], eax
lea rcx, [rbp - 0x70]
mov eax, dword [r14]
mov dword [rbp - 0x68], eax
mov eax, dword [r13]
mov dword [rbp - 0x30], eax
mov eax, dword [r15]
mov dword [rbp - 0x58], eax
mov eax, dword [rdx]
mov rdx, rsi
mov dword [rbp - 0x70], eax
mov eax, dword [r8]
lea r8, [rbp - 0x60]
mov dword [rbp - 0x20], eax
mov eax, dword [r10]
mov dword [rbp - 0x50], eax
lea rax, [rbp - 0x50]
mov dword [rsp + 0x40], 0xc4
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x20]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.180025090
mov r8, qword [rbp]
mov ecx, dword [r8]
lea eax, [rcx - 4]
cmp eax, 1
ja 0x18000e55c
mov eax, dword [rsi + 0x64]
add ecx, 0xfffffffc
mov rdx, qword [rbp + 0x220]
mov r9, qword [rbp - 8]
lea ecx, [rax + rcx*4]
mov dword [rdx], ecx
mov dword [r8], 0x10b
jmp case.default.0x18000e746
lea eax, [rcx - 9]
cmp eax, 1
ja 0x18000f220
mov r9, qword [rbp + 0x220]
mov edx, 0xd1
mov eax, edx
sub eax, 0xd0
je 0x18000e593
cmp eax, 1
jne 0x18000e59a
mov ecx, dword [r8]
mov eax, dword [rsi + 0x68]
add ecx, 0xfffffff7
lea ecx, [rax + rcx*4]
mov dword [r9], ecx
jmp 0x18000e59a
mov dword [r8], 0x10b
dec edx
cmp edx, 0xce
ja 0x18000e574
mov rdx, r9
mov r9, qword [rbp - 8]
jmp case.default.0x18000e746
cmp r9, 0xffffffffffffffff
jne 0x18000e707
mov ebx, 0x12
nop
cmp ebx, 0x12
ja case.default.0x18000e5d6
mov eax, ebx
mov ecx, dword [r11 + rax*4 + 0xfb64]
add rcx, r11
jmp rcx
cmp byte [rbp - 0x18], 0
je 0x18000e5e8
mov rcx, qword [rbp + 0x38]
call qword [sym.imp.GDI32.dll_DeleteObject]
cmp byte [rbp - 0x28], 0
je case.default.0x18000e5d6
mov ecx, dword [rbp + 0x10]
lea rdx, [rbp + 0x230]
mov r8d, 0x104
call qword [sym.imp.WINMM.dll_midiInGetErrorTextA]
jmp case.default.0x18000e5d6
xor eax, eax
mov qword [rbp + 0x28], rax
jmp case.default.0x18000e5d6
xorps xmm0, xmm0
mov byte [rbp - 0x28], 1
xor eax, eax
movups xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x70], rax
movups xmmword [rbp + 0x50], xmm0
mov dword [rbp + 0x78], eax
movups xmmword [rbp + 0x60], xmm0
jmp case.default.0x18000e5d6
mov byte [rbp + 0x56], 0
jmp case.default.0x18000e5d6
mov dword [rbp + 0x50], 0x190
mov byte [rbp + 0x54], 0
jmp case.default.0x18000e5d6
xor eax, eax
mov ecx, eax
movzx eax, byte [rbp - 0x28]
cmp dword [rbp + 0x10], ecx
cmovne ecx, eax
mov byte [rbp - 0x28], cl
jmp case.default.0x18000e5d6
mov dword [rbp + 0x40], 0xa
jmp case.default.0x18000e5d6
lea rcx, [rbp + 0x40]
call qword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov qword [rbp + 0x38], rax
cmp rax, 0
jne case.default.0x18000e5d6
mov byte [rbp - 0x18], al
jmp case.default.0x18000e5d6
mov dword [rbp + 0x4c], 0xa
jmp case.default.0x18000e5d6
mov dword [rbp + 0x48], 0x1e
jmp case.default.0x18000e5d6
mov word [rbp + 0x57], 1
jmp case.default.0x18000e5d6
mov dword [rbp + 0x44], 0x14
jmp case.default.0x18000e5d6
mov byte [rbp - 0x38], 0
jmp case.default.0x18000e5d6
mov rcx, qword [rbp + 0x28]
lea rdx, [rbp - 0x10]
call qword [sym.imp.WINMM.dll_midiInGetID]
mov dword [rbp + 0x10], eax
mov byte [rbp + 0x59], 0
jmp case.default.0x18000e5d6
mov byte [rbp - 0x18], 1
jmp case.default.0x18000e5d6
mov word [rbp + 0x5a], 0x200
jmp case.default.0x18000e5d6
xor eax, eax
mov dword [rbp - 0x10], eax
jmp case.default.0x18000e5d6
mov byte [rbp + 0x55], 0
dec ebx
lea r11, [0x180000000]
lea eax, [rbx + 0x79]
cmp eax, 0x78
ja 0x18000e5c0
mov r8, qword [rbp]
mov rdx, qword [rbp + 0x220]
mov ebx, dword [rbp - 0x30]
mov r9, qword [rbp - 8]
mov r11d, dword [rbp - 0x80]
mov rcx, 0xffffffffffffffff
mov qword [rbp - 0x40], rcx
jmp 0x18000f421
xor eax, eax
mov dword [rbp - 0x38], eax
jmp case.default.0x18000e746
mov eax, dword [r10]
and eax, 0xffff80ff
add eax, 0xffffffe7
cmp eax, 0xa
ja case.default.0x18000e746
cdqe
mov ecx, dword [r11 + rax*4 + 0xfbb0]
add rcx, r11
jmp rcx
mov ebx, 0x13
nop dword [rax]
cmp ebx, 0x13
je 0x18000e812
cmp ebx, 0x89c
je 0x18000e772
cmp ebx, 0x1125
je case.0x18000e4aa.148
jmp 0x18000e8f8
mov eax, dword [r12]
lea r9, [rbp - 0x50]
mov dword [rbp - 0x60], eax
lea rcx, [rsp + 0x60]
mov eax, dword [r14]
mov dword [rbp - 0x20], eax
mov eax, dword [r13]
mov dword [rbp - 0x68], eax
mov eax, dword [r15]
mov dword [rbp - 0x70], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x20]
mov dword [rbp - 0x58], eax
mov eax, dword [r8]
mov r8d, 0x5d
mov dword [rbp - 0x50], eax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x68], 5
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x78], 1
mov byte [rsp + 0x70], 3
call fcn.1800111b0
mov dword [rbp - 0x38], eax
jmp 0x18000e8f4
mov ecx, dword [r10]
test ecx, 0x3e00
jne 0x18000e894
mov eax, dword [r12]
lea r9, [rbp - 0x58]
mov dword [rbp - 0x58], eax
and ecx, 0x4000
mov eax, dword [r14]
mov dword [rbp - 0x68], eax
mov eax, dword [r13]
mov dword [rbp - 0x20], eax
mov eax, dword [r15]
mov dword [rbp - 0x78], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x20]
mov dword [rbp - 0x50], eax
mov eax, dword [r8]
lea r8, [rbp - 0x50]
mov dword [rbp - 0x60], eax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x68]
mov dword [rbp - 0x70], ecx
lea rcx, [rbp - 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xc4
call fcn.18000a7a0
cmp eax, 4
je 0x18000e89b
mov eax, dword [rsi]
jmp 0x18000f937
xor eax, eax
mov dword [rsi + 0x6c], eax
jmp 0x18000e8a1
mov r10, qword [rbp + 8]
xor eax, eax
test dword [r10], 0x4000
je 0x18000e8f8
cmp dword [rsi + 0x6c], 0
jne 0x18000e8f8
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor edx, edx
mov r8d, 0xae
mov rcx, rsi
call fcn.1800170e0
test eax, eax
je 0x18000e8f4
mov ecx, 0xd0
mov eax, ecx
sub eax, 0xd0
je 0x18000e8e5
cmp eax, 1
je case.0x18000e4aa.148
jmp 0x18000e8ea
mov eax, dword [rsi]
mov dword [rbp - 0x38], eax
inc ecx
cmp ecx, 0xd2
jb 0x18000e8d1
mov r10, qword [rbp + 8]
mov r8, qword [rbp]
add ebx, 0x889
mov rdx, qword [rbp + 0x220]
cmp ebx, 0x199b
jbe 0x18000e750
mov ebx, 0x57
nop word [rax + rax]
cmp ebx, 0x57
je 0x18000e9fb
cmp ebx, 0x20a0
je 0x18000e9eb
cmp ebx, 0x40e9
je 0x18000e94e
cmp ebx, 0x6132
je case.0x18000e4aa.148
jmp 0x18000ea49
mov eax, dword [r12]
lea r9, [rbp - 0x58]
mov dword [rbp - 0x70], eax
lea rcx, [rsp + 0x68]
mov eax, dword [r14]
mov dword [rbp - 0x50], eax
mov eax, dword [r13]
mov dword [rbp - 0x60], eax
mov eax, dword [r15]
mov dword [rbp - 0x78], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x68], eax
mov eax, dword [r8]
mov r8d, 0x5d
mov dword [rbp - 0x58], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x60], 0x15
mov byte [rsp + 0x68], 0x10
mov byte [rsp + 0x70], 0x11
mov byte [rsp + 0x78], 0x13
call fcn.1800111b0
mov dword [rbp - 0x38], eax
jmp 0x18000ea49
test dword [r10], 0x3e00
je 0x18000ea49
xor eax, eax
mov dword [rsi + 0x6c], eax
jmp 0x18000ea49
cmp dword [rsi + 0x6c], 0
je 0x18000ea1e
lea r9, [rbp - 0x78]
mov dword [rbp - 0x78], 1
mov r8d, 0x10
mov rdx, rsi
xor ecx, ecx
call fcn.18001c730
jmp 0x18000ea41
test dword [r10], 0x4000
je 0x18000ea49
xor eax, eax
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rax
mov r8d, 0xae
mov rcx, rsi
call fcn.1800170e0
test eax, eax
jne 0x18000e88d
mov r8, qword [rbp]
add ebx, 0x2049
mov rdx, qword [rbp + 0x220]
mov r10, qword [rbp + 8]
cmp ebx, 0x8124
jbe 0x18000e920
mov edi, 5
nop
cmp edi, 5
je 0x18000ebec
cmp edi, 0x1b3
je 0x18000eb2e
cmp edi, 0x361
jne 0x18000ec8a
mov eax, dword [r12]
lea r9, [rbp - 0x60]
mov dword [rbp - 0x78], eax
lea rcx, [rsp + 0x68]
mov eax, dword [r14]
mov dword [rbp - 0x68], eax
mov eax, dword [r13]
mov dword [rbp - 0x10], eax
mov eax, dword [r15]
mov dword [rbp - 0x48], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x68]
mov dword [rbp - 0x70], eax
mov eax, dword [r8]
mov r8d, 0x7b
mov dword [rbp - 0x60], eax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x60], 0x2d
mov byte [rsp + 0x68], 0x28
mov byte [rsp + 0x70], 0x29
mov byte [rsp + 0x78], 0x2b
call fcn.1800111b0
jmp 0x18000f937
test dword [r10], 0x4000
je 0x18000eb63
cmp dword [rsi + 0x6c], 0
jne 0x18000eb63
xor eax, eax
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rax
mov r8d, 0xae
mov rcx, rsi
call fcn.1800170e0
test eax, eax
jne 0x18000e88d
mov r8, qword [rbp]
cmp dword [r8], 0
jne 0x18000ec8a
mov ebx, 0x110
mov eax, ebx
sub eax, 0x110
je 0x18000eb86
cmp eax, 1
je case.0x18000e4aa.148
jmp 0x18000ebd9
mov eax, dword [r12]
lea r9, [rbp - 0x60]
mov dword [rbp - 0x78], eax
lea rdx, [rbp - 0x68]
mov eax, dword [r14]
xor ecx, ecx
mov dword [rbp - 0x70], eax
mov r8, rsi
mov eax, dword [r13]
mov qword [rsp + 0x40], rcx
mov dword [rbp - 0x60], eax
mov eax, dword [r15]
mov dword [rbp - 0x68], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0xb7
mov qword [rsp + 0x20], rcx
call fcn.18002c940
mov dword [rbp - 0x38], eax
inc ebx
cmp ebx, 0x112
jb 0x18000eb72
mov r8, qword [rbp]
jmp 0x18000ec8a
mov ecx, dword [r10]
test ecx, 0x3e00
jne 0x18000ec85
test dword [r14], 0x200
je 0x18000ec8a
mov eax, dword [r12]
lea r9, [rbp - 0x68]
neg eax
mov dword [rbp - 0x60], 0x200
mov dword [rbp - 0x68], eax
and ecx, 0x4000
mov eax, dword [r13]
mov dword [rbp - 0x50], eax
mov eax, dword [r15]
mov dword [rbp - 0x20], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x58], eax
mov eax, dword [r8]
lea r8, [rbp - 0x58]
mov dword [rbp - 0x70], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x60]
mov dword [rbp - 0x78], ecx
lea rcx, [rbp - 0x20]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xc4
call fcn.18000a7a0
cmp eax, 4
jne 0x18000e88d
mov r8, qword [rbp]
jmp 0x18000ec8a
xor eax, eax
mov dword [rsi + 0x6c], eax
mov rdx, qword [rbp + 0x220]
add edi, 0x1ae
mov r10, qword [rbp + 8]
cmp edi, 0x50a
jbe 0x18000ea70
mov edi, dword [rbp - 0x48]
mov ebx, 0x110
nop
mov eax, ebx
sub eax, 0x110
je 0x18000ed6d
sub eax, 0x63
je 0x18000ecd0
cmp eax, 0x63
je case.0x18000e4aa.148
jmp 0x18000edcd
mov eax, dword [r12]
lea r9, [rbp - 0x58]
mov dword [rbp - 0x70], eax
lea rcx, [rsp + 0x68]
mov eax, dword [r14]
mov dword [rbp - 0x50], eax
mov eax, dword [r13]
mov dword [rbp - 0x60], eax
mov eax, dword [r15]
mov dword [rbp - 0x78], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x68], eax
mov eax, dword [r8]
mov r8d, 0x7b
mov dword [rbp - 0x58], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x60], 0x1d
mov byte [rsp + 0x68], 0x18
mov byte [rsp + 0x70], 0x19
mov byte [rsp + 0x78], 0x1b
call fcn.1800111b0
mov dword [rbp - 0x38], eax
jmp 0x18000edcd
cmp dword [rsi + 0x6c], 0
je 0x18000ed90
lea r9, [rbp - 0x78]
mov dword [rbp - 0x78], 1
mov r8d, 0x10
mov rdx, rsi
xor ecx, ecx
call fcn.18001c730
jmp 0x18000edb3
test dword [r10], 0x4000
je 0x18000edbf
xor eax, eax
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rax
mov r8d, 0xae
mov rcx, rsi
call fcn.1800170e0
test eax, eax
jne 0x18000e88d
mov r10, qword [rbp + 8]
test dword [r10], 0x3e00
je 0x18000edcd
xor eax, eax
mov dword [rsi + 0x6c], eax
mov r8, qword [rbp]
add ebx, 0x63
mov rdx, qword [rbp + 0x220]
mov r10, qword [rbp + 8]
cmp ebx, 0x239
jb 0x18000ecb0
mov ebx, 0x99
mov eax, ebx
sub eax, 0x98
je case.0x18000e4aa.148
cmp eax, 1
jne 0x18000ee61
mov eax, dword [r12]
lea rcx, [rbp - 0x50]
mov dword [rbp - 0x58], eax
mov r9, rsi
mov eax, dword [r14]
mov dword [rbp - 0x60], eax
mov eax, dword [r13]
mov dword [rbp - 0x78], eax
mov eax, dword [r15]
mov dword [rbp - 0x68], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x58]
mov dword [rbp - 0x70], eax
mov eax, dword [r8]
lea r8, [rbp - 0x68]
mov dword [rbp - 0x50], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xf9
call fcn.18002bae0
mov dword [rbp - 0x38], eax
mov r8, qword [rbp]
dec ebx
mov rdx, qword [rbp + 0x220]
cmp ebx, 0x97
ja 0x18000edf0
mov ebx, 0xcd
nop
mov eax, ebx
sub eax, 0xcc
je case.0x18000e4aa.148
cmp eax, 1
jne 0x18000ef39
mov eax, dword [r12]
mov ecx, dword [r8]
mov dword [rbp - 0x70], eax
mov eax, dword [r14]
test ecx, ecx
je 0x18000f4d0
mov dword [rbp - 0x50], eax
lea r9, [rbp - 0x58]
mov eax, dword [r13]
mov r8d, 0x5d
mov dword [rbp - 0x60], eax
mov eax, dword [r15]
mov dword [rbp - 0x78], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x68], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov dword [rbp - 0x58], ecx
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x60], 0x25
mov byte [rsp + 0x68], 0x20
mov byte [rsp + 0x70], 0x21
mov byte [rsp + 0x78], 0x23
call fcn.1800111b0
mov dword [rbp - 0x38], eax
mov r8, qword [rbp]
dec ebx
mov rdx, qword [rbp + 0x220]
cmp ebx, 0xcb
ja 0x18000ee80
mov ebx, 0xb7
cmp ebx, 0xb7
je 0x18000ef70
cmp ebx, 0x48ea
je case.0x18000e4aa.148
jmp 0x18000f00b
mov eax, dword [r12]
lea r9, [rbp - 0x58]
mov dword [rbp - 0x70], eax
lea rcx, [rsp + 0x68]
mov eax, dword [r14]
mov dword [rbp - 0x50], eax
mov eax, dword [r13]
mov dword [rbp - 0x60], eax
mov eax, dword [r15]
mov dword [rbp - 0x78], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x68], eax
mov eax, dword [r8]
mov r8d, 0x5d
mov dword [rbp - 0x58], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x60], 0xd
mov byte [rsp + 0x68], 8
mov byte [rsp + 0x70], 9
mov byte [rsp + 0x78], 0xb
call fcn.1800111b0
mov dword [rbp - 0x38], eax
mov r8, qword [rbp]
add ebx, 0x4833
mov rdx, qword [rbp + 0x220]
cmp ebx, 0x9066
jbe 0x18000ef57
mov ebx, 0x106
nop dword [rax]
mov eax, ebx
sub eax, 0x106
je 0x18000f047
cmp eax, 0x7f
je case.0x18000e4aa.148
jmp 0x18000f0e2
mov eax, dword [r12]
lea r9, [rbp - 0x58]
mov dword [rbp - 0x70], eax
lea rcx, [rsp + 0x68]
mov eax, dword [r14]
mov dword [rbp - 0x50], eax
mov eax, dword [r13]
mov dword [rbp - 0x60], eax
mov eax, dword [r15]
mov dword [rbp - 0x78], eax
mov eax, dword [rdx]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x68], eax
mov eax, dword [r8]
mov r8d, 0x5d
mov dword [rbp - 0x58], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x60], 0x35
mov byte [rsp + 0x68], 0x30
mov byte [rsp + 0x70], 0x31
mov byte [rsp + 0x78], 0x33
call fcn.1800111b0
mov dword [rbp - 0x38], eax
mov r8, qword [rbp]
add ebx, 0x7f
mov rdx, qword [rbp + 0x220]
cmp ebx, 0x204
jb 0x18000f030
mov r10, qword [rbp + 8]
mov eax, 0x55
cmp eax, 0x55
je 0x18000f50c
add eax, 0x1595
cmp eax, 0x1595
jbe 0x18000f105
mov ebx, 0xf4
nop
mov eax, ebx
sub eax, 0xf4
je 0x18000f137
cmp eax, 0x25
je case.0x18000e4aa.148
jmp 0x18000f1b9
mov eax, dword [r12]
lea r9, [rbp - 0x58]
mov dword [rbp - 0x78], eax
lea rcx, [rbp - 0x20]
mov eax, dword [r14]
mov dword [rbp - 0x20], eax
mov eax, dword [r13]
mov dword [rbp - 0x68], eax
mov eax, dword [r15]
mov dword [rbp - 0x70], eax
mov eax, dword [rdx]
mov rdx, rsi
mov dword [rbp - 0x50], eax
mov eax, dword [r8]
lea r8, [rbp - 0x50]
mov dword [rbp - 0x60], eax
mov eax, dword [r10]
and eax, 0x3e00
mov byte [rsp + 0x60], 0x28
mov dword [rbp - 0x58], eax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xc1
call fcn.180006d40
mov dword [rbp - 0x38], eax
mov r8, qword [rbp]
add ebx, 0x25
mov rdx, qword [rbp + 0x220]
mov r10, qword [rbp + 8]
cmp ebx, 0x13e
jb 0x18000f120
mov ebx, dword [rbp - 0x30]
mov r9, qword [rbp - 8]
mov eax, 0x61
cmp eax, 0x61
je 0x18000f590
add eax, 0xbc
cmp eax, 0x11d
jb 0x18000f1e3
jmp case.default.0x18000e746
xor eax, eax
mov dword [rbp + 0x1c], eax
jmp case.default.0x18000e746
xor edx, edx
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r8, qword [rbp]
mov dword [rbp + 0x14], eax
mov dword [rbp + 0x18], 0x14
mov r9, qword [rbp - 8]
jmp 0x18000f412
cmp qword [rsi + 0x18], 8
mov rcx, rsi
jb 0x18000f236
mov rcx, qword [rsi]
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 r8, qword [rbp]
mov r9, rax
mov qword [rbp - 8], rax
jmp 0x18000f412
mov ecx, dword [r14]
lea eax, [rcx - 4]
cmp eax, 1
ja 0x18000f2b3
mov edx, 0x99
nop
mov eax, edx
sub eax, 0x99
je 0x18000f297
cmp eax, 1
jne 0x18000f2a7
mov dword [r14], 0x10b
jmp 0x18000f2a7
mov ecx, dword [r14]
mov eax, dword [rsi + 0x64]
add ecx, 0xfffffffc
lea ecx, [rax + rcx*4]
mov dword [r12], ecx
inc edx
cmp edx, 0x9c
jb 0x18000f280
jmp 0x18000f2f0
lea eax, [rcx - 9]
cmp eax, 1
ja 0x18000f2f7
mov edx, 0x6e
mov eax, edx
sub eax, 0x6e
je 0x18000f2d5
cmp eax, 0x68
jne 0x18000f2e5
mov dword [r14], 0x10b
jmp 0x18000f2e5
mov ecx, dword [r14]
mov eax, dword [rsi + 0x68]
add ecx, 0xfffffff7
lea ecx, [rax + rcx*4]
mov dword [r12], ecx
add edx, 0x68
cmp edx, 0x1a6
jb 0x18000f2c0
mov rdx, qword [rbp + 0x220]
mov ecx, dword [r10]
mov eax, ecx
and eax, 0xffff80ff
cmp eax, 0x1d
jl case.default.0x18000e746
test ecx, 0x3e00
je 0x18000f31c
xor eax, eax
mov dword [rsi + 0x6c], eax
jmp case.default.0x18000e746
bt ecx, 0xe
jae case.default.0x18000e746
cmp dword [rsi + 0x6c], 0
jne case.default.0x18000e746
xor eax, eax
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rax
mov r8d, 0xae
mov rcx, rsi
call fcn.1800170e0
test eax, eax
jne 0x18000e88d
mov r8, qword [rbp]
mov r9, qword [rbp - 8]
jmp 0x18000f412
mov ecx, dword [r15]
lea eax, [rcx - 4]
cmp eax, 1
ja 0x18000f39c
mov edx, 0xef
nop
cmp edx, 0xef
jne 0x18000f38f
mov eax, dword [rsi + 0x64]
mov ecx, dword [r15]
add eax, 0xfffffff0
lea ecx, [rax + rcx*4]
mov dword [r13], ecx
mov dword [r15], 0x10b
add edx, 0x6b
cmp edx, 0x1c5
jb 0x18000f370
jmp 0x18000f412
lea eax, [rcx - 9]
cmp eax, 1
ja case.default.0x18000e746
mov edx, 0x6a
nop dword [rax]
mov eax, edx
sub eax, 0x69
je 0x18000f3ce
cmp eax, 1
jne 0x18000f3d5
mov eax, dword [rsi + 0x68]
mov ecx, dword [r15]
add eax, 0xffffffdc
lea ecx, [rax + rcx*4]
mov dword [r13], ecx
jmp 0x18000f3d5
mov dword [r15], 0x10b
dec edx
cmp edx, 0x68
ja 0x18000f3b0
jmp 0x18000f412
mov edx, dword [rsi]
test edx, edx
je 0x18000f412
mov ecx, 0xc2
nop dword [rax]
mov eax, ecx
sub eax, 0xc2
je 0x18000f404
cmp eax, 0x6a
je case.0x18000e4aa.148
jmp 0x18000f407
mov dword [rbp - 0x38], edx
add ecx, 0x6a
cmp ecx, 0x196
jb 0x18000f3f0
mov rdx, qword [rbp + 0x220]
mov r11d, dword [rbp - 0x80]
mov rcx, qword [rbp - 0x40]
mov r10, qword [rbp + 8]
dec ebx
mov dword [rbp - 0x30], ebx
cmp ebx, edi
ja 0x18000e489
mov ebx, dword [rbp + 0x14]
mov edi, dword [rbp + 0x1c]
mov edx, dword [rbp + 0x18]
mov r14d, dword [rbp + 0x20]
lea esi, [r14 + 0x882]
mov dword [rbp - 0x30], esi
cmp r14d, esi
jae case.0x18000e4aa.148
movzx r13d, byte [rsp + 0x60]
mov r8d, 0x696e
movzx r12d, byte [rsp + 0x60]
mov esi, dword [rbp - 0x48]
mov r15d, dword [rbp - 0x48]
mov eax, dword [rbp - 0x30]
nop
cmp r14d, 0x484
ja 0x18000f6c2
je 0x18000f6b6
cmp r14d, 0xa6
je 0x18000f62b
cmp r14d, 0x16c
je 0x18000f5fb
cmp r14d, 0x232
je 0x18000f5dc
cmp r14d, 0x2f8
je 0x18000f5c1
cmp r14d, 0x3be
jne 0x18000faf0
xor edx, edx
mov qword [rbp + 0x28], rdx
jmp 0x18000faf0
mov dword [rbp - 0x10], eax
lea r9, [rbp - 0x10]
mov eax, dword [r13]
lea r8, [rbp - 0x70]
mov dword [rbp - 0x48], eax
mov rdx, rsi
mov eax, dword [r15]
mov ecx, 0xcf
mov dword [rbp - 0x78], eax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x20], rax
call fcn.180038030
jmp 0x18000f937
mov byte [rsp + 0x60], 0x20
mov eax, dword [r12]
lea r9, [rbp - 0x60]
mov dword [rbp - 0x48], eax
lea rcx, [rbp - 0x58]
mov eax, dword [r14]
mov dword [rbp - 0x58], eax
mov eax, dword [r13]
mov dword [rbp - 0x70], eax
mov eax, dword [r15]
mov dword [rbp - 0x78], eax
mov eax, dword [rdx]
mov rdx, rsi
mov dword [rbp - 0x68], eax
mov eax, dword [r8]
lea r8, [rbp - 0x68]
mov dword [rbp - 0x10], eax
mov eax, dword [r10]
and eax, 0x3e00
mov dword [rbp - 0x60], eax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xc1
call fcn.180006d40
jmp 0x18000f937
mov byte [rsp + 0x60], 0x38
jmp 0x18000f511
mov rcx, qword [rbp + 0x28]
mov r11d, dword [rbp - 0x48]
mov edi, dword [rbp - 0x48]
mov ebx, dword [rbp - 0x48]
mov edx, dword [rbp - 0x48]
mov qword [rbp - 0x40], rcx
mov dword [rbp - 0x80], r11d
mov dword [rbp + 0x1c], edi
mov dword [rbp + 0x14], ebx
mov dword [rbp + 0x18], edx
jmp 0x18000f43b
mov rcx, r9
mov dword [rbp - 0x78], 0x1e
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8d, 0x696e
jmp 0x18000fae1
xor edx, edx
lea rcx, [rbp + 0x80]
mov r8d, 0x194
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x696e
jmp 0x18000fae1
xor edx, edx
mov rcx, r10
call fcn.1800035f0
mov rcx, qword [rbp - 8]
lea r9, [rbp + 0x30]
mov rdx, rax
mov r8d, ebx
xor eax, eax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r8d, 0x696e
jmp 0x18000fae1
mov rdx, qword [r10 + 0x10]
mov ecx, ebx
cmp rcx, rdx
ja 0x18000f650
mov qword [r10 + 0x10], rcx
mov rax, r10
cmp qword [r10 + 0x18], 0x10
jb 0x18000f647
mov rax, qword [r10]
mov byte [rax + rcx], 0
jmp 0x18000fae9
mov r8, qword [r10 + 0x18]
mov rdi, rcx
mov rax, r8
sub rdi, rdx
sub rax, rdx
cmp rdi, rax
ja 0x18000f695
mov qword [r10 + 0x10], rcx
mov rax, r10
cmp r8, 0x10
jb 0x18000f675
mov rax, qword [r10]
lea rbx, [rax + rdx]
mov r8, rdi
mov rcx, rbx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x696e
mov byte [rbx + rdi], 0
jmp 0x18000fae1
mov r9, rdi
mov byte [rsp + 0x20], 0
xor r8d, r8d
mov rdx, rdi
mov rcx, r10
call fcn.180002090
mov r8d, 0x696e
jmp 0x18000fae1
mov dword [rbp - 0x48], 0x194
jmp 0x18000faf0
cmp r14d, 0x54a
je 0x18000f74a
cmp r14d, 0x610
je 0x18000f71d
cmp r14d, 0x6d6
je 0x18000f701
cmp r14d, 0x79c
je 0x18000f6f8
cmp r14d, 0x862
je case.0x18000e4aa.148
jmp 0x18000faf0
mov byte [rbp - 0x38], 1
jmp 0x18000faf0
mov r8d, dword [rbp - 0x48]
lea rdx, [rbp + 0x80]
call qword [sym.imp.WINMM.dll_joyGetDevCapsA]
mov r8d, 0x696e
jmp 0x18000fae1
mov rax, qword [rbp + 0x28]
mov r8d, edx
mov r9d, dword [rbp - 0x78]
mov edx, r11d
mov qword [rsp + 0x28], rax
mov ecx, edi
xor eax, eax
mov qword [rsp + 0x20], rax
call qword [sym.imp.GDI32.dll_LineDDA]
mov r8d, 0x696e
jmp 0x18000fae1
cmp ebx, dword [rbp + 0x30]
je 0x18000faf0
mov r14d, 0x121
mov dword [rbp - 0x50], r14d
nop dword [rax]
cmp r14d, 0x336f9
ja 0x18000f893
je 0x18000f887
cmp r14d, 0x19c0d
ja 0x18000f830
je 0x18000f7f7
cmp r14d, 0x121
je 0x18000f7e3
cmp r14d, 0x67dc
je 0x18000f7c4
cmp r14d, 0xce97
je 0x18000f7b8
cmp r14d, 0x13552
jne 0x18000fabb
mov word [rbp + 0x224], 0x74
jmp 0x18000fabb
mov byte [rbp + 0x224], 0
jmp 0x18000fabb
mov r8d, 2
lea rdx, [0x18003f3cf]
lea rcx, [rbp + 0x222]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
jmp 0x18000fabb
mov word [rbp + 0x220], r8w
mov byte [rbp + 0x222], 0
jmp 0x18000fabb
mov r8d, 2
lea rdx, [0x18003f31c]
lea rcx, [rbp + 0x220]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
mov r8d, 3
lea rdx, [0x18003f370]
lea rcx, [rbp + 0x227]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
jmp 0x18000fabb
cmp r14d, 0x202c8
je 0x18000f87b
cmp r14d, 0x26983
je 0x18000f85b
cmp r14d, 0x2d03e
jne 0x18000fabb
mov byte [rbp + 0x22d], 0
jmp 0x18000fabb
movzx eax, word [0x18003f306]
mov word [rbp + 0x22a], ax
movzx eax, byte [0x18003f308]
mov byte [rbp + 0x22c], al
jmp 0x18000fabb
mov byte [rbp + 0x22a], 0
jmp 0x18000fabb
mov byte [rbp + 0x22d], 0x65
jmp 0x18000fabb
cmp r14d, 0x4d1e5
ja 0x18000f90d
je 0x18000f8f8
cmp r14d, 0x39db4
je 0x18000f8e9
cmp r14d, 0x4046f
je 0x18000f8d8
cmp r14d, 0x46b2a
jne 0x18000fabb
xor eax, eax
mov qword [r10 + 0x10], rax
mov rax, r10
cmp qword [r10 + 0x18], 0x10
jb 0x18000f8d0
mov rax, qword [r10]
mov byte [rax], 0
jmp 0x18000fabb
mov r12b, 1
call qword [sym.imp.WINMM.dll_waveInGetNumDevs]
mov dword [rbp - 0x70], eax
jmp 0x18000fabb
mov byte [rbp + 0x22e], 0
mov r13b, 1
jmp 0x18000fabb
lea rcx, [rbp + 0x220]
call qword [sym.imp.WINMM.dll_mciGetDeviceIDA]
mov dword [rbp - 0x20], eax
jmp 0x18000fabb
cmp r14d, 0x538a0
je 0x18000fa9e
cmp r14d, 0x59f5b
je 0x18000f961
cmp r14d, 0x60616
jne 0x18000fabb
mov byte [rbp - 0x38], 0
mov eax, dword [rbp - 0x38]
mov rcx, qword [rbp + 0x440]
xor rcx, rsp
call fcn.180039520
mov rbx, qword [rsp + 0x590]
add rsp, 0x550
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test r13b, r13b
je 0x18000fa16
mov edi, 0xea
nop
mov eax, edi
sub eax, 0xe6
je 0x18000f9c3
sub eax, 1
je 0x18000f9af
sub eax, 1
je 0x18000f99c
sub eax, 1
je 0x18000f994
cmp eax, 1
jne 0x18000fa08
xor eax, eax
mov dword [rbp - 0x10], eax
jmp 0x18000fa08
xor eax, eax
mov qword [rbp], rax
jmp 0x18000fa08
mov rcx, qword [rbp]
lea rdx, [rbp - 0x10]
call qword [sym.imp.WINMM.dll_waveInGetID]
mov r15d, eax
jmp 0x18000fa08
xor eax, eax
mov ecx, eax
test r15d, r15d
movzx eax, r13b
cmovne ecx, eax
movzx r13d, cl
jmp 0x18000fa08
test r13b, r13b
je 0x18000fa08
mov ebx, 0xae
nop dword [rax]
cmp ebx, 0xae
je 0x18000f9f5
cmp ebx, 0x15b
jne 0x18000f9fa
mov r8d, esi
lea rdx, [rbp + 0x230]
mov ecx, r15d
call qword [sym.imp.WINMM.dll_waveInGetErrorTextW]
jmp 0x18000f9fa
mov esi, 0x104
add ebx, 0xad
cmp ebx, 0x208
jb 0x18000f9d0
dec edi
cmp edi, 0xe5
ja 0x18000f970
test r12b, r12b
je 0x18000fabb
mov r14d, dword [rbp - 0x20]
mov ebx, 0x3f
cmp ebx, 0x3f
je 0x18000fa85
cmp ebx, 0x27de
je 0x18000fa72
cmp ebx, 0x4f7d
je 0x18000fa5d
cmp ebx, 0x771c
jne 0x18000fa8a
test r12b, r12b
je 0x18000fa8a
mov r8d, dword [rbp + 0x10]
mov ecx, r14d
mov rdx, qword [rbp + 0x38]
call qword [sym.imp.WINMM.dll_mciSetYieldProc]
jmp 0x18000fa8a
xor edx, edx
movzx eax, r12b
mov ecx, edx
cmp qword [rbp + 0x38], rcx
cmovne ecx, eax
movzx r12d, cl
jmp 0x18000fa8a
lea rdx, [rbp + 0x10]
mov ecx, r14d
call qword [sym.imp.WINMM.dll_mciGetYieldProc]
mov qword [rbp + 0x38], rax
jmp 0x18000fa8a
xor edx, edx
mov dword [rbp + 0x10], edx
add ebx, 0x279f
cmp ebx, 0x9e7c
jbe 0x18000fa28
mov r14d, dword [rbp - 0x50]
jmp 0x18000fabb
xor edx, edx
movzx eax, r13b
cmp dword [rbp - 0x70], edx
mov ecx, edx
movzx r12d, r12b
cmovne ecx, eax
cmp dword [rbp - 0x20], edx
movzx r13d, cl
cmove r12d, edx
mov r10, qword [rbp + 8]
add r14d, 0x66bb
mov dword [rbp - 0x50], r14d
mov r8d, 0x696e
cmp r14d, 0x66bb0
jbe 0x18000f760
mov r14d, dword [rbp + 0x20]
mov r11d, dword [rbp - 0x80]
mov r9, qword [rbp - 8]
mov eax, dword [rbp - 0x30]
mov rcx, qword [rbp - 0x40]
add r14d, 0xc6
mov dword [rbp + 0x20], r14d
cmp r14d, eax
jae case.0x18000e4aa.148
mov r10, qword [rbp + 8]
mov ebx, dword [rbp + 0x14]
mov edi, dword [rbp + 0x1c]
mov edx, dword [rbp + 0x18]
jmp 0x18000f470