Function at 0x6296af6c
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x59e]
sub esp, 0x75c
mov dword [ebp - 0x71c], ecx
mov eax, dword [ebp + 8]
mov ecx, eax
mov dword [eax + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], 0x7e
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
cmp edx, 0x7e
push esi
push esi
jne 0x6296afc2
mov ecx, dword [ebp + 8]
mov dword [esp], 0x7e
call fcn.62924a94
mov eax, ebx
push ecx
call method.OpenMPT.ValidateHeader_OpenMPT::MT2FileHeader_const_
test al, al
jne 0x6296afce
mov byte [ebp - 0x739], 0
jmp 0x6296d4b3
mov dword [esp], 0x100
mov ecx, dword [ebp + 8]
call fcn.629c9c58
mov byte [ebp - 0x739], al
test al, al
push edx
je 0x6296afc2
cmp dword [ebp + 0xc], 0x40
je 0x6296d4b3
mov ecx, dword [ebp - 0x71c]
mov dword [esp], 0x100000
call method.OpenMPT::CSoundFile.InitializeGlobals_OpenMPT::MODTYPE_
mov ecx, dword [ebp - 0x71c]
push ebx
call method.OpenMPT::CSoundFile.InitializeChannels__
lea ecx, [ebp - 0x420]
mov dword [esp], str.MadTracker_.
call fcn.62a660d0
lea eax, [ebp - 0x420]
lea ecx, [ebp - 0x5e8]
push esi
mov dword [esp], eax
call fcn.62a64dfc
lea ecx, [ebp - 0x420]
push edi
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
movzx eax, byte [ebp - 0x596]
mov dword [ebp - 0x624], eax
lea eax, [ebp - 0x408]
mov dword [ebp - 0x410], eax
lea edi, [ebp - 0x420]
lea eax, [ebp - 0x520]
lea edx, [ebp - 0x624]
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x418], 0xffffffff
mov dword [ebp - 0x414], 0
mov dword [ebp - 0x40c], 0
mov byte [ebp - 0x408], 0
mov dword [ebp - 0x420], 0x412
mov dword [ebp - 0x41c], 2
call fcn.62921944
lea ecx, [ebp - 0x410]
lea esi, [ebp - 0x520]
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
mov dword [esp + 8], esi
movzx eax, byte [ebp - 0x595]
mov dword [ebp - 0x608], eax
lea eax, [ebp - 0x608]
mov dword [esp + 4], eax
lea eax, [ebp - 0x5e8]
mov dword [esp], eax
mov ecx, edi
call fcn.629c90c8
sub esp, 0xc
mov eax, dword [ebp - 0x71c]
mov ebx, esi
lea ecx, [eax + 0x13cff0]
mov dword [esp], edi
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::operator_std::__cxx11::basic_string_char__mpt::mpt_libopenmpt::encodi
mov ecx, edi
push eax
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
mov ecx, esi
lea esi, [ebp - 0x5e8]
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
mov ecx, esi
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
mov ecx, edi
mov dword [esp], 0x62b1d0a3
call fcn.62a660d0
push eax
mov eax, dword [ebp - 0x71c]
mov dword [esp], edi
lea ecx, [eax + 0x13d008]
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::operator_std::__cxx11::basic_string_char__mpt::mpt_libopenmpt::encodi
mov ecx, edi
push edx
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
lea eax, [ebp - 0x594]
mov ecx, ebx
mov dword [ebp - 0x608], eax
lea eax, [ebp - 0x608]
mov dword [esp], eax
mov dword [ebp - 0x604], 0x20
mov byte [ebp - 0x600], 2
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
lea eax, [ebp - 0x624]
mov dword [ebp - 0x624], 0x16
push ecx
mov ecx, edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call method.std::__cxx11::basic_string_char32_t__std::char_traits_char32_t___std::allocator_char32_t____OpenMPT::mpt::CharsetTranscoder::decode_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______std::__cxx11::basic_string_char__st
jmp 0x6296b1ae
push eax
push eax
lea eax, [ebp - 0x420]
mov dword [esp + 8], 0x3f
mov dword [esp + 4], eax
mov dword [esp], esi
call sym.__ZN3mpt14mpt_libopenmpt11encode_utf8INSt7__cxx1112basic_stringIcNS0_20encoding_char_traitsILNS0_15common_encodingE0ES5_EESaIc
lea ecx, [ebp - 0x420]
lea ebx, [ebp - 0x520]
call method.std::__cxx11::basic_string_char32_t__std::char_traits_char32_t___std::allocator_char32_t___._M_dispose__
mov ecx, ebx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov eax, dword [ebp - 0x71c]
lea esi, [ebp - 0x5e8]
lea ecx, [eax + 0x13d020]
mov dword [esp], esi
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::operator_std::__cxx11::basic_string_char__mpt::mpt_libopenmpt::encodi
mov ecx, esi
push edi
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
mov eax, dword [ebp - 0x71c]
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x51c], 0x40
mov byte [ebp - 0x518], 2
mov dword [eax + 0x13d068], 0x16
lea eax, [ebp - 0x574]
mov dword [esp], ebx
mov dword [ebp - 0x520], eax
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push eax
mov eax, dword [ebp - 0x71c]
lea ecx, [eax + 0x13cfa8]
lea eax, [ebp - 0x420]
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea ecx, [ebp - 0x420]
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov edi, dword [ebp - 0x71c]
mov ax, word [ebp - 0x52e]
mov word [edi + 0x753bc], ax
movzx eax, byte [ebp - 0x52a]
cmp al, 0x1f
jbe 0x6296b28c
mov eax, 0x1f
jmp 0x6296b295
test al, al
jne 0x6296b295
mov eax, 1
mov edi, dword [ebp - 0x71c]
mov dword [edi + 0x753c4], eax
mov ax, word [ebp - 0x524]
mov word [edi + 0x753c0], ax
mov ax, word [ebp - 0x522]
mov word [edi + 0x753be], ax
mov dword [edi + 0x753cc], 0x1312d0
movzx eax, byte [ebp - 0x529]
mov dword [edi + 0x753d0], 0x8018
cmp al, 0x20
jbe 0x6296b2e3
mov eax, 0x20
jmp 0x6296b2ec
test al, al
jne 0x6296b2ec
mov eax, 1
mov edi, dword [ebp - 0x71c]
mov ecx, dword [ebp + 8]
mov dword [edi + 0x753d8], eax
mov dword [edi + 0x753e8], 0x30
shl eax, 2
mov dword [edi + 0x753e4], 0x60
mov dword [edi + 0x753dc], eax
mov dword [esp], 0x100
call fcn.629c9c58
test al, al
push ecx
jne 0x6296b35b
lea eax, [ebp - 0x420]
jmp 0x6296b351
mov byte [ebx], 0
inc ebx
cmp eax, ebx
jne 0x6296b351
jmp 0x6296b370
mov dword [esp], ebx
mov dword [esp + 4], 0x100
mov ecx, dword [ebp + 8]
call fcn.62924acc
push edx
push edx
mov edi, dword [ebp - 0x71c]
movzx esi, word [ebp - 0x534]
movzx ebx, byte [edi + 0x76418]
imul ebx, ebx, 0x2c
mov eax, esi
add ebx, dword [edi + 0x76408]
cmp si, 0x100
jbe 0x6296b39b
mov esi, 0x100
cmp ax, 0x100
mov word [ebp - 0x420], 0xffff
jbe 0x6296b3af
mov eax, 0x100
mov edi, dword [ebx + 4]
mov edx, dword [ebx]
mov ecx, edi
sub ecx, edx
sar ecx, 1
cmp eax, ecx
jbe 0x6296b3dd
sub eax, ecx
lea edx, [ebp - 0x420]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edi
mov ecx, ebx
call method.std::vector_unsigned_short__std::allocator_unsigned_short___._M_fill_insert___gnu_cxx::__normal_iterator_unsigned_short__std::vector_unsigned_short__std::allocator_unsigned_short_______unsigned_int__unsigned_short_const_
sub esp, 0xc
jmp 0x6296b3ea
jae 0x6296b3ea
add eax, eax
add eax, edx
cmp edi, eax
je 0x6296b3ea
mov dword [ebx + 4], eax
xor eax, eax
cmp esi, eax
jle 0x6296b420
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
sub edx, ecx
sar edx, 1
movzx edi, byte [eax + ebp - 0x520]
cmp edx, eax
ja 0x6296b419
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0x62b1d0a7
call method.std.__throw_out_of_range_fmt_char_const__..._
mov word [ecx + eax*2], di
inc eax
jmp 0x6296b3ec
mov eax, dword [ebp - 0x71c]
mov edi, dword [ebp - 0x71c]
mov dx, word [ebp - 0x532]
lea ebx, [ebp - 0x420]
movzx eax, byte [eax + 0x76418]
imul eax, eax, 0x2c
add eax, dword [edi + 0x76408]
mov word [eax + 0x28], dx
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov ecx, ebx
cmp ax, 1
mov word [ebp - 0x748], ax
sbb eax, eax
not eax
and eax, 0x112
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.62924b18
lea ecx, [ebp - 0x6e4]
push eax
push eax
mov dword [esp], ebx
call fcn.62924d08
mov ecx, ebx
push eax
call fcn.6292595c
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
lea ebx, [ebp - 0x6bc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov ecx, ebx
mov dword [esp], eax
call fcn.62924b18
push eax
lea ecx, [ebp - 0x6d0]
push eax
mov dword [esp], ebx
call fcn.62924d08
mov ecx, ebx
push eax
call fcn.6292595c
mov eax, dword [ebp - 0x71c]
cmp word [ebp - 0x748], 0
mov eax, dword [eax + 0x753bc]
mov word [ebp - 0x738], ax
je 0x6296b4fc
mov edi, dword [ebp - 0x71c]
add eax, 8
mov word [edi + 0x753bc], ax
mov eax, dword [ebp + 0xc]
and eax, 1
mov dword [ebp - 0x750], eax
jne 0x6296b51f
mov word [ebp - 0x734], 0
mov byte [ebp - 0x720], 0
jmp 0x6296b5b6
mov eax, dword [ebp - 0x71c]
lea ecx, [eax + 0x763f8]
movzx eax, word [ebp - 0x530]
mov dword [esp], eax
call method.OpenMPT::CPatternContainer.ResizeArray_unsigned_short_
push eax
jmp 0x6296b50a
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
movzx eax, ax
mov dword [ebp - 0x728], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
inc eax
lea ebx, [ebp - 0x6a8]
and eax, 0xfffffffe
mov ecx, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.62924b18
push esi
lea ecx, [ebp - 0x420]
push esi
mov dword [esp], ebx
call fcn.62924d08
mov ecx, ebx
push edi
call fcn.6292595c
cmp dword [ebp - 0x728], 0x400
ja 0x6296b5ce
cmp dword [ebp - 0x728], 0
jne 0x6296b5d8
lea ecx, [ebp - 0x420]
call fcn.6292595c
inc word [ebp - 0x734]
mov eax, dword [ebp - 0x734]
cmp ax, word [ebp - 0x530]
jb 0x6296b53d
jmp 0x6296b8f5
mov dword [ebp - 0x728], 0x400
cmp dword [ebp - 0x750], 0
je 0x6296b5a4
mov eax, dword [ebp - 0x71c]
lea ecx, [eax + 0x763f8]
mov eax, dword [ebp - 0x728]
mov dword [esp + 4], eax
movzx eax, word [ebp - 0x734]
mov dword [esp], eax
call method.OpenMPT::CPatternContainer.Insert_unsigned_short__unsigned_int_
push ecx
test al, al
push ecx
je 0x6296b5a4
movzx eax, word [ebp - 0x734]
shl eax, 6
mov dword [ebp - 0x74c], eax
mov eax, dword [ebp - 0x528]
and eax, 1
mov dword [ebp - 0x730], eax
je 0x6296b8b1
mov word [ebp - 0x740], 0
mov dword [ebp - 0x730], 0
mov dword [esp], 1
lea ecx, [ebp - 0x420]
call fcn.629c9c58
test al, al
push edx
je 0x6296b5a4
lea ebx, [ebp - 0x420]
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov esi, eax
mov byte [ebp - 0x744], 0
inc al
jne 0x6296b692
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov dword [esp], ebx
mov byte [ebp - 0x744], al
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov esi, eax
test esi, 0x7f
je 0x6296b7f7
mov eax, dword [ebp - 0x71c]
mov edi, dword [ebp - 0x74c]
add edi, dword [eax + 0x763f8]
mov ecx, edi
call method.OpenMPT::CPattern.GetNumChannels___const
lea edx, [ebp - 0x5e8]
movzx ebx, ax
imul ebx, dword [ebp - 0x730]
movzx eax, word [ebp - 0x740]
add ebx, eax
mov ecx, 7
imul ebx, ebx, 6
xor eax, eax
add ebx, dword [edi]
mov edi, edx
rep stosb byte es:[edi], al
test esi, 1
je 0x6296b6fc
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e8], al
test esi, 2
je 0x6296b718
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e7], al
test esi, 4
je 0x6296b734
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e6], al
test esi, 8
je 0x6296b750
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e5], al
test esi, 0x10
je 0x6296b76c
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e4], al
test esi, 0x20
je 0x6296b788
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e3], al
and esi, 0x40
je 0x6296b7a1
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e2], al
lea edx, [ebp - 0x5e8]
mov eax, ebx
call method.OpenMPT.ConvertMT2Command_OpenMPT::CSoundFile__OpenMPT::ModCommand__OpenMPT::MT2Command___clone_.isra.0_
or byte [ebp - 0x720], al
mov eax, dword [ebp - 0x728]
dec eax
movzx edx, byte [ebp - 0x744]
sub eax, dword [ebp - 0x730]
cmp eax, edx
jbe 0x6296b7ce
mov eax, edx
mov edx, ebx
xor ecx, ecx
cmp ecx, eax
je 0x6296b7f7
mov edi, dword [ebp - 0x71c]
inc ecx
movzx esi, word [edi + 0x753bc]
imul esi, esi, 6
add edx, esi
mov esi, dword [ebx]
mov dword [edx], esi
mov si, word [ebx + 4]
mov word [edx + 4], si
jmp 0x6296b7d2
movzx eax, byte [ebp - 0x744]
mov edi, dword [ebp - 0x730]
lea eax, [edi + eax + 1]
mov dword [ebp - 0x730], eax
mov edi, dword [ebp - 0x728]
cmp dword [ebp - 0x730], edi
jb 0x6296b82b
sub dword [ebp - 0x730], edi
inc word [ebp - 0x740]
jmp 0x6296b80e
mov edi, dword [ebp - 0x738]
cmp word [ebp - 0x740], di
jb 0x6296b644
jmp 0x6296b5a4
lea eax, [ebp - 0x5e8]
mov dword [esp + 4], 7
mov dword [esp], eax
lea ecx, [ebp - 0x420]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push edi
cmp edx, 7
push edi
jne 0x6296b8e4
mov dword [esp], 7
lea ecx, [ebp - 0x420]
call fcn.62924a94
push ecx
lea edx, [ebp - 0x5e8]
mov eax, ebx
call method.OpenMPT.ConvertMT2Command_OpenMPT::CSoundFile__OpenMPT::ModCommand__OpenMPT::MT2Command___clone_.isra.0_
or byte [ebp - 0x720], al
inc esi
add ebx, 6
cmp si, word [ebp - 0x738]
jne 0x6296b843
inc dword [ebp - 0x730]
mov edi, dword [ebp - 0x730]
cmp dword [ebp - 0x728], edi
je 0x6296b5a4
mov eax, dword [ebp - 0x71c]
mov esi, dword [ebp - 0x74c]
add esi, dword [eax + 0x763f8]
mov ecx, esi
call method.OpenMPT::CPattern.GetNumChannels___const
mov ecx, esi
call method.OpenMPT::CPattern.GetNumChannels___const
movzx ebx, ax
imul ebx, dword [ebp - 0x730]
imul ebx, ebx, 6
add ebx, dword [esi]
xor esi, esi
jmp 0x6296b890
lea edi, [ebp - 0x5e8]
mov ecx, 7
xor eax, eax
rep stosb byte es:[edi], al
jmp 0x6296b879
movzx eax, word [ebp - 0x52c]
lea edx, [eax - 2]
cmp dx, 0x1385
ja 0x6296b99f
cmp byte [ebp - 0x720], 0
je 0x6296b952
mov ecx, eax
mov dword [esp + 8], eax
sar ecx, 1
mov dword [esp + 0xc], 0
mov ebx, ecx
sar ebx, 0x1f
add ecx, 0x41b6d0a0
adc ebx, 0
mov dword [esp], ecx
mov dword [esp + 4], ebx
call dbg.__divdi3
mov edi, dword [ebp - 0x71c]
mov dword [edi + 0x753cc], eax
mov byte [edi + 0x753e0], 0
jmp 0x6296b99f
mov edi, dword [ebp - 0x71c]
mov dword [ebp - 0x724], 0
mov edx, dword [edi + 0x753c4]
imul edx, dword [edi + 0x753d8]
imul eax, edx
mov dword [ebp - 0x728], eax
fild qword [ebp - 0x728]
fdivr dword [0x62b1d160]
fmul dword [0x62b1d164]
fstp qword [esp]
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_round_unsigned_int__double_
mov byte [edi + 0x753e0], 2
mov dword [edi + 0x753cc], eax
mov eax, dword [ebp - 0x71c]
movzx ebx, word [eax + 0x753bc]
test ebx, ebx
je 0x6296b9cc
mov dword [esp], ebx
call sym.operator_new_unsigned_int_
mov dword [ebp - 0x728], eax
mov ecx, ebx
xor eax, eax
mov edi, dword [ebp - 0x728]
rep stosb byte es:[edi], al
jmp 0x6296b9d6
mov dword [ebp - 0x728], 0
mov dword [ebp - 0x740], 0
mov dword [esp], 8
lea ecx, [ebp - 0x6d0]
call fcn.629c9c58
test al, al
push edx
je 0x6296bf93
lea esi, [ebp - 0x6d0]
mov dword [esp], esi
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [esp], esi
mov ebx, eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
lea esi, [ebp - 0x694]
mov dword [esp + 4], eax
lea eax, [ebp - 0x6d0]
mov ecx, esi
mov dword [esp], eax
call fcn.62924b18
push eax
lea ecx, [ebp - 0x63c]
push eax
mov dword [esp], esi
call fcn.62924d08
mov ecx, esi
push eax
call fcn.6292595c
cmp ebx, 0x32545356
je 0x6296bf6b
ja 0x6296ba78
cmp ebx, 0x4d5553
je 0x6296be23
cmp ebx, 0x2b4d5042
je 0x6296baa3
cmp ebx, 0x47534d
je 0x6296bdd9
jmp 0x6296bf83
cmp ebx, 0x4e544150
je 0x6296bd20
cmp ebx, 0x534b5254
je 0x6296bb5c
xor esi, esi
cmp ebx, 0x4c4b5254
je 0x6296bd08
jmp 0x6296bf83
cmp byte [ebp - 0x720], 0
jne 0x6296bf83
mov eax, dword [ebp - 0x71c]
lea ecx, [ebp - 0x63c]
mov byte [eax + 0x753e0], 2
lea eax, [ebp - 0x420]
mov dword [esp], eax
mov dword [esp + 4], 8
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 8
push eax
jne 0x6296bf83
mov dword [esp], 8
lea ecx, [ebp - 0x63c]
call fcn.62924a94
fld qword [ebp - 0x420]
fcom qword [0x62b1d168]
fnstsw ax
push edi
sahf
jbe 0x6296bf81
mov eax, dword [ebp - 0x71c]
mov edi, dword [ebp - 0x71c]
mov dword [ebp - 0x72c], 0
mov eax, dword [eax + 0x753c4]
imul eax, dword [edi + 0x753d8]
mov dword [ebp - 0x730], eax
fild qword [ebp - 0x730]
fmulp st(1)
fdivr dword [0x62b1d160]
fmul dword [0x62b1d164]
fstp qword [esp]
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_round_unsigned_int__double_
mov dword [edi + 0x753cc], eax
jmp 0x6296bf83
lea eax, [ebp - 0x63c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
shr ax, 8
je 0x6296bb81
mov edi, dword [ebp - 0x71c]
movzx eax, ax
mov dword [edi + 0x753e4], eax
jmp 0x6296bb91
mov eax, dword [ebp - 0x71c]
mov dword [eax + 0x753e4], 0x30
mov eax, dword [ebp - 0x71c]
mov edi, dword [ebp - 0x71c]
xor ebx, ebx
mov eax, dword [eax + 0x753e4]
mov dword [ebp - 0x730], eax
shr eax, 1
mov dword [edi + 0x753e8], eax
mov eax, dword [ebp - 0x71c]
cmp bx, word [eax + 0x753bc]
jae 0x6296bf83
lea eax, [ebp - 0x420]
mov dword [esp + 4], 0x406
mov dword [esp], eax
lea ecx, [ebp - 0x63c]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push esi
cmp edx, 0x406
push esi
jne 0x6296bc2e
mov dword [esp], 0x406
lea ecx, [ebp - 0x63c]
call fcn.62924a94
movzx edx, bx
push ecx
mov ecx, edx
movzx eax, word [ebp - 0x420]
shl ecx, 5
mov edi, dword [ebp - 0x71c]
sar eax, 0xa
mov word [edi + ecx + 0x7541e], ax
mov edi, dword [ebp - 0x728]
mov al, byte [ebp - 0x41d]
mov byte [edi + edx], al
inc ebx
jmp 0x6296bbb3
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.629c9c58
test al, al
push edx
je 0x6296bf83
lea eax, [ebp - 0x5e8]
lea edx, [ebp - 0x5e0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x63c]
mov dword [esp + 8], 0xffffffff
mov dword [esp], eax
mov dword [ebp - 0x5e8], edx
mov dword [ebp - 0x5e4], 0
mov byte [ebp - 0x5e0], 0
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader14ReadNullStringIN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
mov eax, dword [ebp - 0x5e8]
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x608], eax
mov eax, dword [ebp - 0x5e4]
mov dword [ebp - 0x604], eax
lea eax, [ebp - 0x608]
mov dword [esp], eax
mov byte [ebp - 0x600], 3
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
movzx eax, si
mov edi, dword [ebp - 0x71c]
push ecx
shl eax, 5
lea ebx, [ebp - 0x420]
lea ecx, [ebp - 0x624]
mov dword [esp], ebx
lea eax, [edi + eax + 0x75421]
mov dword [ebp - 0x620], 0x14
mov dword [ebp - 0x624], eax
call method.mpt::mpt_libopenmpt::StringBufRefImpl_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, ebx
inc esi
push edi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea ecx, [ebp - 0x5e8]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov eax, dword [ebp - 0x71c]
cmp word [eax + 0x753bc], si
ja 0x6296bc31
jmp 0x6296bf83
xor ebx, ebx
cmp bx, word [ebp - 0x530]
jae 0x6296bf83
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.629c9c58
test al, al
push edx
je 0x6296bf83
mov eax, dword [ebp - 0x71c]
mov edi, dword [ebp - 0x71c]
mov eax, dword [eax + 0x763fc]
sub eax, dword [edi + 0x763f8]
sar eax, 6
cmp bx, ax
jae 0x6296bf83
lea eax, [ebp - 0x420]
lea edx, [ebp - 0x418]
mov dword [esp + 4], eax
lea eax, [ebp - 0x63c]
mov dword [esp + 8], 0xffffffff
mov dword [esp], eax
mov dword [ebp - 0x420], edx
mov dword [ebp - 0x41c], 0
mov byte [ebp - 0x418], 0
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader14ReadNullStringIN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
movzx ecx, bx
mov eax, dword [ebp - 0x71c]
lea esi, [ebp - 0x420]
shl ecx, 6
add ecx, dword [eax + 0x763f8]
mov dword [esp], esi
call method.OpenMPT::CPattern.SetName_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, esi
push edi
inc ebx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x6296bd22
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.62924a94
mov eax, dword [ebp - 0x71c]
lea ebx, [ebp - 0x63c]
mov ecx, ebx
push esi
lea esi, [eax + 0x13cfd8]
call fcn.629c9c84
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov dword [esp], ebx
mov ecx, esi
call sym.__ZN7OpenMPT11SongMessage4ReadERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataENS5_24FileCursorFile
sub esp, 0xc
jmp 0x6296bf83
mov dword [esp], 6
lea ecx, [ebp - 0x63c]
call fcn.629c9c58
test al, al
push ebx
lea eax, [ebp - 0x654]
jne 0x6296be50
lea edx, [ebp - 0x64e]
mov byte [eax], 0
inc eax
cmp edx, eax
jne 0x6296be46
jmp 0x6296be68
mov dword [esp], eax
mov dword [esp + 4], 6
lea ecx, [ebp - 0x63c]
call fcn.62924acc
push ecx
push ecx
lea eax, [ebp - 0x61c]
lea ebx, [ebp - 0x624]
mov dword [ebp - 0x624], eax
lea eax, [ebp - 0x63c]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x620], 0
mov byte [ebp - 0x61c], 0
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader14ReadNullStringIN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
mov dword [esp], str.Unregistered
mov ecx, ebx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.compare_char_const__const
test eax, eax
push edx
je 0x6296bf5e
lea esi, [ebp - 0x5e8]
mov dword [esp], ebx
mov ecx, esi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea ebx, [ebp - 0x420]
push eax
lea eax, [ebp - 0x66c]
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, ebx
mov dword [ebp - 0x66c], 0x16
call method.std::__cxx11::basic_string_char32_t__std::char_traits_char32_t___std::allocator_char32_t____OpenMPT::mpt::CharsetTranscoder::decode_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______std::__cxx11::basic_string_char__st
push eax
push eax
lea eax, [ebp - 0x608]
mov dword [esp + 8], 0x3f
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt11encode_utf8INSt7__cxx1112basic_stringIcNS0_20encoding_char_traitsILNS0_15common_encodingE0ES5_EESaIc
mov ecx, ebx
lea ebx, [ebp - 0x608]
call method.std::__cxx11::basic_string_char32_t__std::char_traits_char32_t___std::allocator_char32_t___._M_dispose__
mov ecx, esi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov eax, dword [ebp - 0x71c]
mov dword [esp], ebx
lea ecx, [eax + 0x13cfc0]
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::operator_std::__cxx11::basic_string_char__mpt::mpt_libopenmpt::encodi
mov ecx, ebx
push eax
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
jmp 0x6296bf5e
lea ecx, [ebp - 0x624]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x6296bf83
lea eax, [ebp - 0x63c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [ebp - 0x740], eax
jmp 0x6296bf83
fstp st(0)
lea ecx, [ebp - 0x63c]
call fcn.6292595c
jmp 0x6296b9e0
mov eax, dword [ebp - 0x71c]
xor edx, edx
lea esi, [eax + 0xdd43c]
mov eax, dword [ebp - 0x71c]
movzx ebx, word [eax + 0x753bc]
cmp dx, bx
jae 0x6296c043
movzx eax, dx
mov edi, dword [ebp - 0x728]
movsx ecx, byte [edi + eax]
cmp ecx, eax
jle 0x6296c03d
cmp ecx, ebx
jge 0x6296c03d
shl ecx, 5
mov edi, dword [ebp - 0x71c]
mov bl, byte [edi + ecx + 0x75420]
test bl, bl
je 0x6296c03d
shl eax, 5
lea ecx, [edi + eax]
mov al, byte [ecx + 0x75420]
test al, al
jne 0x6296bff8
mov byte [ecx + 0x75420], bl
jmp 0x6296c03d
dec eax
mov byte [ebp - 0x730], al
movzx ecx, byte [ebp - 0x730]
imul ecx, ecx, 0xa0
add ecx, esi
mov edi, dword [ecx + 0x1c]
cmp edi, 0x7f
jbe 0x6296c025
lea eax, [edi - 0x80]
mov byte [ebp - 0x730], al
mov eax, edi
cmp al, 0x7f
jne 0x6296bfff
dec ebx
cmp bl, 0xf9
ja 0x6296c036
movzx ebx, bl
sub ebx, 0xffffff80
mov dword [ecx + 0x1c], ebx
jmp 0x6296c03d
mov dword [ecx + 0x1c], 0
inc edx
jmp 0x6296bfa1
xor eax, eax
lea edi, [ebp - 0x704]
mov ecx, 4
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x6f4]
mov ecx, 4
rep stosd dword es:[edi], eax
cmp word [ebp - 0x748], 0
je 0x6296c563
lea eax, [ebp - 0x420]
mov dword [esp + 4], 0x112
mov dword [esp], eax
lea ecx, [ebp - 0x6e4]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 0x112
push eax
jne 0x6296c0a8
mov dword [esp], 0x112
lea ecx, [ebp - 0x6e4]
call fcn.62924a94
push eax
jmp 0x6296c0b7
lea edi, [ebp - 0x420]
mov ecx, 0x112
xor eax, eax
rep stosb byte es:[edi], al
mov ebx, 1
mov eax, dword [ebp - 0x71c]
mov ecx, dword [ebp - 0x71c]
mov eax, dword [eax + 0x753c0]
mov word [ebp - 0x730], ax
inc eax
movzx eax, ax
mov dword [esp], eax
call method.OpenMPT::CSoundFile.GetNextFreeInstrument_unsigned_short__const
mov dx, word [ebp + ebx*2 - 0x420]
push edi
mov word [ebp + ebx*2 - 0x706], ax
mov word [ebp + ebx*2 - 0x6f6], dx
cmp ax, 0xffff
je 0x6296c1cc
inc edx
mov ecx, dword [ebp - 0x71c]
movzx edx, dx
movzx eax, ax
mov dword [esp + 4], edx
mov dword [esp], eax
call method.OpenMPT::CSoundFile.AllocateInstrument_unsigned_short__unsigned_short_
push esi
test eax, eax
push esi
mov esi, eax
je 0x6296c1d6
lea eax, [ebp - 0x5e0]
mov dword [esp + 8], 0x62b1d106
mov dword [esp], eax
mov dword [esp + 4], str.Drum_
mov dword [ebp - 0x5e8], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._S_copy_chars_char__char_const__char_const_
mov eax, dword [ebp - 0x5e8]
mov dword [ebp - 0x5e4], 8
lea edi, [ebp - 0x608]
mov byte [eax + 8], 0
lea eax, [ebp - 0x5e8]
mov ecx, edi
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
push ecx
lea ecx, [ebp - 0x5e8]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea eax, [ebp - 0x624]
mov dword [esp + 4], eax
mov dword [esp], edi
lea ecx, [ebp - 0x5e8]
mov dword [ebp - 0x624], ebx
call fcn.629c9878
push eax
lea ecx, [esi + 0x1ec]
push eax
lea eax, [ebp - 0x5e8]
mov dword [esp], eax
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea ecx, [ebp - 0x5e8]
push edx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov ecx, edi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x6296c1d6
mov word [ebp + ebx*2 - 0x706], 0
inc ebx
cmp ebx, 9
jne 0x6296c0bc
movzx eax, word [ebp - 0x420]
lea ecx, [ebp - 0x608]
mov dword [esp], eax
call fcn.62a5cb08
xor ebx, ebx
push eax
movzx eax, word [ebp - 0x420]
cmp eax, ebx
jbe 0x6296c291
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
movzx eax, ax
shl eax, 5
lea esi, [ebp - 0x680]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov ecx, esi
call fcn.62924b18
push ecx
lea edi, [ebp - 0x5e8]
push ecx
mov ecx, edi
mov dword [esp], esi
call fcn.62924d08
push eax
imul eax, ebx, 0x14
add eax, dword [ebp - 0x608]
mov dword [esp], edi
mov ecx, eax
mov dword [ebp - 0x730], eax
call method.std::shared_ptr_mpt::mpt_libopenmpt::IO::IFileData_const_.operator_std::shared_ptr_mpt::mpt_libopenmpt::IO::IFileData_const__
mov edx, dword [ebp - 0x730]
lea ecx, [edx + 0xc]
inc ebx
push eax
mov eax, dword [ebp - 0x5e0]
mov dword [edx + 8], eax
lea eax, [ebp - 0x5dc]
mov dword [esp], eax
call method.std::shared_ptr_mpt::mpt_libopenmpt::BasicPathString_mpt::mpt_libopenmpt::NativePathTraits__true___.operator_std::shared_ptr_mpt::mpt_libopenmpt::BasicPathString_mpt::mpt_libopenmpt::NativePathTraits__true____
mov ecx, edi
push eax
call fcn.6292595c
mov ecx, esi
call fcn.6292595c
jmp 0x6296c1f8
movzx ebx, word [ebp - 0x530]
test ebx, ebx
je 0x6296c2c2
lea eax, [ebx + ebx]
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov dword [ebp - 0x730], eax
xor eax, eax
mov esi, dword [ebp - 0x730]
mov word [esi + eax*2], 0xffff
inc eax
cmp ebx, eax
jne 0x6296c2af
jmp 0x6296c2cc
mov dword [ebp - 0x730], 0
mov dword [ebp - 0x720], 0
movzx eax, word [ebp - 0x534]
cmp eax, dword [ebp - 0x720]
jbe 0x6296c541
mov eax, dword [ebp - 0x720]
movzx edx, word [ebp - 0x420]
movzx ecx, byte [ebp + eax - 0x40e]
mov eax, ecx
cmp ecx, edx
jge 0x6296c536
mov edi, dword [ebp - 0x71c]
mov esi, dword [ebp - 0x720]
add esi, esi
movzx edx, byte [edi + 0x76418]
imul edx, edx, 0x2c
add edx, dword [edi + 0x76408]
mov edx, dword [edx]
movzx ebx, word [edx + esi]
cmp bx, word [ebp - 0x530]
jae 0x6296c536
movzx ecx, bx
lea edx, [ecx + ecx]
add edx, dword [ebp - 0x730]
mov di, word [edx]
cmp di, 0xffff
jne 0x6296c353
mov word [edx], ax
jmp 0x6296c39c
cmp di, ax
je 0x6296c39c
mov eax, dword [ebp - 0x71c]
mov dword [esp], ecx
add eax, 0x763f8
mov dword [esp + 4], 0
mov ecx, eax
call method.OpenMPT::CPatternContainer.Duplicate_unsigned_short__bool_
cmp ax, 0xffff
push edx
push edx
je 0x6296c39c
mov edi, dword [ebp - 0x71c]
movzx ebx, ax
movzx edx, byte [edi + 0x76418]
imul edx, edx, 0x2c
add edx, dword [edi + 0x76408]
mov edx, dword [edx]
mov word [edx + esi], ax
mov esi, dword [ebp - 0x71c]
mov eax, dword [ebp - 0x71c]
mov esi, dword [esi + 0x763fc]
mov eax, dword [eax + 0x763f8]
mov edx, esi
mov dword [ebp - 0x734], esi
sub edx, eax
sar edx, 6
cmp bx, dx
jae 0x6296c536
shl ebx, 6
add eax, ebx
mov dword [ebp - 0x748], ebx
mov esi, dword [eax]
cmp dword [eax + 4], esi
je 0x6296c536
mov eax, dword [ebp - 0x720]
movzx esi, byte [ebp + eax - 0x40e]
imul esi, esi, 0x14
add esi, dword [ebp - 0x608]
mov ecx, esi
mov dword [esi + 8], 0
call fcn.629c9c9c
shr eax, 5
mov dword [ebp - 0x734], 0
mov dword [ebp - 0x74c], eax
mov eax, dword [ebp - 0x71c]
mov edx, dword [ebp - 0x748]
add edx, dword [eax + 0x763f8]
mov eax, dword [ebp - 0x734]
cmp eax, dword [edx + 0xc]
jae 0x6296c536
mov eax, dword [ebp - 0x71c]
mov ecx, edx
mov dword [ebp - 0x744], edx
mov eax, dword [eax + 0x753bc]
lea edi, [eax - 8]
call method.OpenMPT::CPattern.GetNumChannels___const
movzx ebx, ax
imul ebx, dword [ebp - 0x734]
movzx edi, di
add ebx, edi
mov edx, dword [ebp - 0x744]
imul ebx, ebx, 6
add ebx, dword [edx]
mov dword [ebp - 0x744], 0
xor eax, eax
mov ecx, 6
mov edi, ebx
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x74c]
cmp dword [ebp - 0x734], edi
jb 0x6296c4af
inc dword [ebp - 0x744]
add ebx, 6
cmp dword [ebp - 0x744], 8
jne 0x6296c479
inc dword [ebp - 0x734]
jmp 0x6296c418
mov dword [esp], 4
mov ecx, esi
call fcn.629c9c58
test al, al
push edi
jne 0x6296c4ce
mov dword [ebp - 0x5e8], 0
jmp 0x6296c4e8
lea eax, [ebp - 0x5e8]
mov dword [esp + 4], 4
mov dword [esp], eax
mov ecx, esi
call fcn.62924acc
push ecx
push ecx
mov dl, byte [ebp - 0x5e8]
test dl, dl
jns 0x6296c492
mov eax, dword [ebp - 0x744]
mov byte [ebx], 0x3d
mov ax, word [ebp + eax*2 - 0x704]
mov byte [ebx + 1], al
mov al, dl
and al, 0x1f
je 0x6296c51d
and dl, 0x10
je 0x6296c513
mov al, 0xf
or eax, 0xffffffd0
mov byte [ebx + 3], 0x14
mov byte [ebx + 5], al
mov byte [ebx + 2], 1
movzx eax, byte [ebp - 0x5e7]
add eax, 3
shr eax, 2
mov byte [ebx + 4], al
jmp 0x6296c492
inc dword [ebp - 0x720]
jmp 0x6296c2d6
cmp dword [ebp - 0x730], 0
je 0x6296c558
mov eax, dword [ebp - 0x730]
mov dword [esp], eax
call sym.operator_delete_void_
lea ecx, [ebp - 0x608]
call fcn.62a5ccf8
mov edx, dword [ebp - 0x528]
test dl, 2
je 0x6296c63a
movzx eax, word [ebp - 0x738]
test dl, 8
je 0x6296c58b
mov eax, dword [ebp - 0x71c]
movzx eax, word [eax + 0x753bc]
cmp word [ebp - 0x596], 0x24f
ja 0x6296c5a0
mov dword [ebp - 0x740], 0
shr edx, 4
xor edi, edi
and edx, 1
add eax, edx
add eax, dword [ebp - 0x740]
mov dword [ebp - 0x730], eax
movzx eax, word [ebp - 0x530]
cmp eax, edi
jbe 0x6296c63a
xor esi, esi
cmp esi, dword [ebp - 0x730]
jne 0x6296c5ce
inc edi
jmp 0x6296c5b6
mov dword [esp], 4
mov ecx, dword [ebp + 8]
call fcn.629c9c58
test al, al
push edx
je 0x6296c5cb
mov eax, dword [ebp + 8]
cmp word [ebp - 0x596], 0x202
mov dword [esp], eax
jbe 0x6296c607
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
jmp 0x6296c61a
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
movzx ebx, ax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
test ebx, ebx
je 0x6296c637
test bl, 1
je 0x6296c633
mov dword [esp], 0x104
mov ecx, dword [ebp + 8]
call fcn.62924a94
push eax
shr ebx, 1
jmp 0x6296c61a
inc esi
jmp 0x6296c5c3
mov dword [esp], 0xff
lea ecx, [ebp - 0x710]
call fcn.62a5cb08
mov dword [ebp - 0x730], 0
push eax
lea eax, [ebp - 0x608]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadArrayIcLj32EN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov ebx, eax
cmp eax, 0x20
jne 0x6296c683
mov ebx, 0x1ac
cmp word [ebp - 0x596], 0x201
jbe 0x6296c695
test ebx, ebx
je 0x6296c695
add ebx, 4
mov eax, dword [ebp + 8]
mov dword [esp + 4], ebx
mov dword [esp], eax
lea ecx, [ebp - 0x66c]
call fcn.62924b18
push ecx
lea eax, [ebp - 0x66c]
push ecx
lea ecx, [ebp - 0x420]
mov dword [esp], eax
call fcn.62924d08
lea eax, [ebp - 0x420]
push esi
imul esi, dword [ebp - 0x730], 0x14
add esi, dword [ebp - 0x710]
mov dword [esp], eax
mov ecx, esi
call method.std::shared_ptr_mpt::mpt_libopenmpt::IO::IFileData_const_.operator_std::shared_ptr_mpt::mpt_libopenmpt::IO::IFileData_const__
mov eax, dword [ebp - 0x418]
push edi
mov dword [esi + 8], eax
lea edi, [esi + 0xc]
lea eax, [ebp - 0x414]
mov ecx, edi
mov dword [esp], eax
call method.std::shared_ptr_mpt::mpt_libopenmpt::BasicPathString_mpt::mpt_libopenmpt::NativePathTraits__true___.operator_std::shared_ptr_mpt::mpt_libopenmpt::BasicPathString_mpt::mpt_libopenmpt::NativePathTraits__true____
lea ecx, [ebp - 0x624]
push eax
mov dword [esp], esi
call method.std::shared_ptr_mpt::mpt_libopenmpt::IO::IFileData_const_.shared_ptr_std::shared_ptr_mpt::mpt_libopenmpt::IO::IFileData_const__const_
lea ecx, [ebp - 0x618]
push eax
mov eax, dword [esi + 8]
mov dword [esp], edi
mov dword [ebp - 0x61c], eax
call method.std::shared_ptr_mpt::mpt_libopenmpt::BasicPathString_mpt::mpt_libopenmpt::NativePathTraits__true___.shared_ptr_std::shared_ptr_mpt::mpt_libopenmpt::BasicPathString_mpt::mpt_libopenmpt::NativePathTraits__true____const_
lea ecx, [ebp - 0x420]
push eax
call fcn.6292595c
lea ecx, [ebp - 0x66c]
call fcn.6292595c
mov eax, dword [ebp - 0x730]
cmp word [ebp - 0x524], ax
jbe 0x6296cb3d
mov eax, dword [ebp - 0x730]
mov ecx, dword [ebp - 0x71c]
inc eax
mov dword [esp + 4], eax
mov dword [esp], eax
call method.OpenMPT::CSoundFile.AllocateInstrument_unsigned_short__unsigned_short_
push edx
mov esi, eax
push edx
test eax, eax
je 0x6296cb3d
lea eax, [ebp - 0x608]
lea edi, [ebp - 0x63c]
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x420]
mov dword [esp], eax
mov ecx, edi
mov dword [ebp - 0x41c], 0x20
mov byte [ebp - 0x418], 2
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push eax
lea ecx, [esi + 0x1ec]
mov dword [esp], edi
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, edi
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
test ebx, ebx
je 0x6296cb3d
lea ebx, [ebp - 0x624]
lea eax, [ebp - 0x420]
mov dword [esp], eax
mov ecx, ebx
call fcn.629ad0e0
cmp word [ebp - 0x596], 0x200
push eax
mov word [ebp - 0x720], 0
jbe 0x6296c7fd
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov word [ebp - 0x720], ax
cmp word [ebp - 0x596], 0x201
mov dword [ebp - 0x738], 3
jbe 0x6296c826
lea eax, [ebp - 0x624]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [ebp - 0x738], eax
movzx eax, word [ebp - 0x3ba]
mov dword [esi], eax
mov dword [ebp - 0x680], 0x3020100
mov eax, dword [ebp - 0x3b8]
mov dword [ebp - 0x66c], 0x3020100
and eax, 3
mov dword [ebp - 0x654], 0x2010200
mov dword [ebp - 0x734], 0
mov al, byte [ebp + eax - 0x680]
mov byte [esi + 0x10], al
movzx eax, byte [ebp - 0x3b7]
and eax, 3
mov al, byte [ebp + eax - 0x66c]
mov byte [esi + 0x11], al
movzx eax, word [ebp - 0x3b8]
sar eax, 0xc
and eax, 3
mov al, byte [ebp + eax - 0x654]
mov byte [esi + 0x12], al
test byte [ebp - 0x738], 1
je 0x6296c9e5
lea eax, [ebp - 0x5e8]
mov dword [esp + 4], 0x48
mov dword [esp], eax
lea ecx, [ebp - 0x624]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 0x48
push eax
jne 0x6296c8da
mov dword [esp], 0x48
lea ecx, [ebp - 0x624]
call fcn.62924a94
push eax
jmp 0x6296c8e9
lea edi, [ebp - 0x5e8]
mov ecx, 0x12
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x734]
mov dword [ebp - 0x63c], 0x2020100
lea ebx, [esi + 0x44]
mov al, byte [ebp + eax - 0x63c]
cmp al, 1
je 0x6296c911
lea ebx, [esi + 0x58]
cmp al, 2
je 0x6296c911
lea ebx, [esi + 0x30]
cmp dword [ebp - 0x734], 3
mov al, byte [ebp - 0x5e8]
mov cl, byte [ebx + 0xc]
jne 0x6296c92c
mov dl, cl
or edx, 0x10
test al, 1
jne 0x6296c931
mov dl, cl
and edx, 0xffffffef
mov cl, dl
and ecx, 0xfffffffe
test al, 1
je 0x6296c93f
or edx, 1
mov cl, dl
mov dl, cl
and edx, 0xfffffffb
test al, 2
je 0x6296c94d
mov dl, cl
or edx, 4
mov cl, dl
and ecx, 0xfffffffd
test al, 4
je 0x6296c95b
or edx, 2
mov cl, dl
mov byte [ebx + 0xc], cl
movzx eax, byte [ebp - 0x5e7]
cmp al, 0x10
jbe 0x6296c96e
mov eax, 0x10
mov ecx, dword [ebx + 4]
mov edi, dword [ebx]
mov edx, ecx
sub edx, edi
sar edx, 2
cmp eax, edx
jbe 0x6296c98d
sub eax, edx
mov ecx, ebx
mov dword [esp], eax
call method.std::vector_OpenMPT::EnvelopeNode__std::allocator_OpenMPT::EnvelopeNode___._M_default_append_unsigned_int_
push edi
jmp 0x6296c999
jae 0x6296c999
lea eax, [edi + eax*4]
cmp ecx, eax
je 0x6296c999
mov dword [ebx + 4], eax
mov al, byte [ebp - 0x5e6]
mov ecx, dword [ebx]
mov byte [ebx + 0x10], al
mov byte [ebx + 0xf], al
mov edx, dword [ebx + 4]
mov ax, word [ebp - 0x5e5]
sub edx, ecx
mov word [ebx + 0xd], ax
sar edx, 2
xor eax, eax
cmp eax, edx
je 0x6296c9e5
mov ebx, dword [ebp + eax*4 - 0x5e0]
mov word [ecx + eax*4], bx
mov bx, word [ebp + eax*4 - 0x5de]
cmp bx, 0x40
jbe 0x6296c9de
mov ebx, 0x40
mov byte [ecx + eax*4 + 2], bl
inc eax
jmp 0x6296c9bc
inc dword [ebp - 0x734]
shr dword [ebp - 0x738], 1
cmp dword [ebp - 0x734], 4
jne 0x6296c895
test byte [esi + 0x3c], 1
jne 0x6296ca10
cmp byte [esi + 0x10], 3
je 0x6296ca10
mov dword [esi], 0x7fff
cmp word [ebp - 0x720], 0
mov word [esi + 0x15], 0x80ff
je 0x6296cb3d
lea eax, [ebp - 0x5e8]
mov dword [esp + 4], 0x20
mov dword [esp], eax
lea ecx, [ebp - 0x624]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push ebx
cmp edx, 0x20
push ebx
jne 0x6296ca5c
mov dword [esp], 0x20
lea ecx, [ebp - 0x624]
call fcn.62924a94
push ecx
jmp 0x6296ca6b
lea edi, [ebp - 0x5e8]
mov ecx, 8
xor eax, eax
rep stosd dword es:[edi], eax
test byte [ebp - 0x720], 2
je 0x6296cab5
movzx eax, word [ebp - 0x5e6]
mov dword [ebp - 0x734], eax
mov ecx, dword [ebp - 0x71c]
fild dword [ebp - 0x734]
fstp qword [esp]
call method.OpenMPT::CSoundFile.FrequencyToCutOff_double__const
push edx
test al, al
push edx
jns 0x6296ca9d
mov al, 0x7f
or eax, 0xffffff80
mov byte [esi + 0x15], al
mov al, byte [ebp - 0x5e4]
test al, al
jns 0x6296caaf
mov al, 0x7f
or eax, 0xffffff80
mov byte [esi + 0x16], al
cmp byte [ebp - 0x5e7], 1
sete byte [esi + 0x19]
test byte [ebp - 0x720], 4
je 0x6296cb3d
mov al, byte [ebp - 0x5e1]
inc eax
mov byte [esi + 0x1f], al
mov al, byte [ebp - 0x5e0]
test al, al
lea edx, [eax + 1]
mov byte [esi + 0x22], dl
jns 0x6296caed
mov al, byte [ebp - 0x5d9]
inc eax
mov byte [esi + 0x1e], al
mov dl, byte [ebp - 0x5dc]
test dl, dl
jne 0x6296cafb
xor eax, eax
jmp 0x6296cb29
mov eax, 1
movsx ecx, dl
lea edx, [ecx + eax]
cmp edx, 0x78
jle 0x6296cb12
mov edx, 0x78
jmp 0x6296cb1b
test edx, edx
jg 0x6296cb1b
mov edx, 1
mov byte [esi + eax + 0x6b], dl
inc eax
cmp eax, 0x81
jne 0x6296cb03
jmp 0x6296caf7
mov word [esi + eax + 0xec], 0
add eax, 2
cmp eax, 0x100
jne 0x6296cb29
lea ecx, [ebp - 0x624]
call fcn.6292595c
inc dword [ebp - 0x730]
cmp dword [ebp - 0x730], 0xff
jne 0x6296c657
xor eax, eax
lea edi, [ebp - 0x608]
mov ecx, 8
xor esi, esi
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x5e8]
mov ecx, 8
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x71c]
lea ebx, [eax + 0x76484]
lea eax, [ebp - 0x420]
mov word [ebp - 0x734], si
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov word [ebp - 0x720], si
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadArrayIcLj32EN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [ebp - 0x730], eax
lea edi, [ebp - 0x654]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov ecx, edi
call fcn.62924b18
push ecx
push ecx
lea ecx, [ebp - 0x63c]
mov dword [esp], edi
call fcn.62924d08
mov ecx, edi
push eax
call fcn.6292595c
cmp si, word [ebp - 0x522]
jae 0x6296cc48
lea eax, [ebp - 0x420]
mov dword [esp], edi
lea ecx, [ebp - 0x624]
mov dword [ebp - 0x654], eax
mov dword [ebp - 0x650], 0x20
mov byte [ebp - 0x64c], 2
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push eax
mov eax, esi
shl eax, 5
mov edi, dword [ebp - 0x71c]
lea ecx, [edi + eax + 0xe70a0]
lea edi, [ebp - 0x624]
mov dword [esp], edi
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, edi
push edx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
cmp dword [ebp - 0x730], 0
je 0x6296ce12
cmp si, word [ebp - 0x522]
jae 0x6296ce12
mov dword [esp], 0x20
mov ecx, ebx
call method.OpenMPT::ModSample.Initialize_OpenMPT::MODTYPE_
mov ecx, ebx
push eax
call method.OpenMPT::ModSample.SetDefaultCuePoints__
lea eax, [ebp - 0x624]
mov dword [esp + 4], 0x1a
mov dword [esp], eax
lea ecx, [ebp - 0x63c]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 0x1a
push eax
jne 0x6296ccb0
mov dword [esp], 0x1a
lea ecx, [ebp - 0x63c]
call fcn.62924a94
push eax
jmp 0x6296ccbf
lea edi, [ebp - 0x624]
mov ecx, 0x1a
xor eax, eax
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x624]
mov edx, dword [ebp - 0x620]
cmp byte [ebp - 0x61c], 1
mov dword [ebx], eax
mov dword [ebx + 0x18], edx
jbe 0x6296cce2
or word [ebx + 0x22], 1
shr eax, 1
mov dword [ebx], eax
cmp byte [ebp - 0x61b], 1
jbe 0x6296ccf2
or word [ebx + 0x22], 0x40
shr dword [ebx], 1
mov al, byte [ebp - 0x619]
cmp al, 1
jne 0x6296cd03
or word [ebx + 0x22], 2
jmp 0x6296cd0c
cmp al, 2
jne 0x6296cd0c
or word [ebx + 0x22], 6
mov eax, dword [ebp - 0x618]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x614]
mov dword [ebx + 8], eax
movzx eax, word [ebp - 0x610]
sar eax, 7
mov word [ebx + 0x1e], ax
movsx ax, byte [ebp - 0x60e]
cmp al, 0x80
jne 0x6296cd40
or word [ebx + 0x22], 0x100
jmp 0x6296cd48
sub ax, 0xff80
mov word [ebx + 0x1c], ax
mov al, byte [ebp - 0x60d]
or word [ebx + 0x22], 0x20
mov byte [ebx + 0x24], al
test byte [ebp - 0x61a], 2
je 0x6296cd93
mov eax, esi
mov dword [esp], 1
shr eax, 5
lea ecx, [ebp - 0x654]
lea eax, [ebp + eax*4 - 0x5e8]
mov dword [ebp - 0x654], eax
mov eax, dword [ebp - 0x720]
and eax, 0x1f
mov dword [ebp - 0x650], eax
call method.std::bitset_256u_::reference.operator_bool_
push eax
mov al, byte [ebp - 0x61a]
test al, 5
je 0x6296cda3
or word [ebx + 0x22], 0x4000
test al, 8
je 0x6296ce12
mov eax, esi
mov dword [esp], 1
shr eax, 5
lea ecx, [ebp - 0x654]
lea eax, [ebp + eax*4 - 0x608]
mov dword [ebp - 0x654], eax
mov eax, dword [ebp - 0x720]
and eax, 0x1f
mov dword [ebp - 0x650], eax
call method.std::bitset_256u_::reference.operator_bool_
xor eax, eax
push edi
mov edi, dword [ebp - 0x734]
cmp word [eax + ebp - 0x6f4], di
jne 0x6296ce0a
movzx edx, word [eax + ebp - 0x704]
mov edi, dword [ebp - 0x71c]
mov edx, dword [edi + edx*4 + 0xdbd1c]
test edx, edx
je 0x6296ce0a
mov byte [edx + 0xe], 0
add eax, 2
cmp eax, 0x10
jne 0x6296cddd
lea ecx, [ebp - 0x63c]
inc esi
call fcn.6292595c
add ebx, 0x68
cmp esi, 0x100
jne 0x6296cb88
mov word [ebp - 0x730], 0
mov eax, dword [ebp - 0x730]
cmp ax, word [ebp - 0x524]
jae 0x6296d094
movzx ebx, ax
imul ebx, ebx, 0x14
mov ecx, dword [ebp - 0x710]
add ecx, ebx
call fcn.629c9c9c
test eax, eax
je 0x6296d088
add ebx, dword [ebp - 0x710]
lea eax, [ebp - 0x420]
mov ecx, ebx
mov dword [ebx + 8], 0
mov dword [esp], eax
call fcn.629ad0e0
movzx esi, word [ebp - 0x420]
push ebx
mov dword [ebp - 0x624], 0
lea eax, [esi*8]
mov dword [ebp - 0x620], 0
mov dword [ebp - 0x61c], 0
mov dword [ebp - 0x720], eax
test esi, esi
je 0x6296cf34
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov ebx, eax
lea edi, [ebp - 0x63c]
mov ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x63c]
mov dword [ebx + eax*8], ecx
mov ecx, dword [ebp - 0x638]
mov dword [ebx + eax*8 + 4], ecx
inc eax
cmp esi, eax
jne 0x6296ced1
mov esi, dword [ebp - 0x624]
mov eax, dword [ebp - 0x620]
sub eax, esi
test eax, eax
jle 0x6296cf0d
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._memmove
jmp 0x6296cf11
test esi, esi
je 0x6296cf19
mov dword [esp], esi
call sym.operator_delete_void_
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x624], ebx
lea edx, [ebx + eax]
mov dword [ebp - 0x620], edx
mov dword [ebp - 0x61c], edx
mov eax, dword [ebp - 0x720]
mov ecx, dword [ebp + 8]
mov dword [esp], eax
call fcn.629c9c58
test al, al
push ecx
je 0x6296cf69
mov edx, dword [ebp - 0x624]
mov eax, dword [ebp - 0x620]
sub eax, edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov ecx, dword [ebp + 8]
call fcn.62924acc
push edx
push edx
movzx eax, word [ebp - 0x730]
mov esi, dword [ebp - 0x71c]
mov eax, dword [esi + eax*4 + 0xdbd20]
test eax, eax
je 0x6296cf87
cmp byte [eax + 0x22], 0
je 0x6296cf97
lea ecx, [ebp - 0x624]
call method.std::_Vector_base_OpenMPT::MT2Group__std::allocator_OpenMPT::MT2Group___._Vector_base____clone_.isra.0_
jmp 0x6296d088
mov dword [eax + 4], 0x20
xor edx, edx
mov word [eax + edx + 0xec], 0
add edx, 2
cmp edx, 0x100
jne 0x6296cfa0
xor ebx, ebx
movzx edx, byte [ebp + ebx - 0x41e]
movzx ecx, word [ebp - 0x420]
cmp edx, ecx
jge 0x6296d079
mov ecx, dword [ebp - 0x624]
mov edi, dword [ebp - 0x71c]
lea esi, [ecx + edx*8]
movzx ecx, byte [esi]
inc ecx
mov word [eax + ebx*2 + 0x104], cx
cmp word [edi + 0x753be], cx
jb 0x6296d079
movzx edi, cx
imul edx, edi, 0x68
mov dword [ebp - 0x720], edi
add edx, dword [ebp - 0x71c]
movzx edi, byte [ebp - 0x3be]
and edi, 3
mov ecx, edi
mov edi, dword [ebp - 0x3bc]
mov byte [edx + 0x76442], cl
mov cl, byte [ebp - 0x3bd]
mov byte [edx + 0x76443], cl
mov word [edx + 0x76444], di
movzx edi, byte [esi + 1]
add edi, edi
mov word [edx + 0x7643c], di
mov edi, 1
mov cl, byte [esi + 2]
mov byte [edx + 0x76441], cl
mov ecx, dword [ebp - 0x720]
dec ecx
mov edx, ecx
shr edx, 5
shl edi, cl
test dword [ebp + edx*4 - 0x608], edi
mov ecx, edi
je 0x6296d06b
mov byte [eax + 0xe], 0
test dword [ebp + edx*4 - 0x5e8], ecx
je 0x6296d079
mov byte [eax + ebx + 0x78], 0x3d
inc ebx
cmp ebx, 0x60
jne 0x6296cfb7
jmp 0x6296cf87
inc word [ebp - 0x730]
jmp 0x6296ce36
test byte [ebp + 0xc], 2
je 0x6296d339
xor ebx, ebx
mov eax, dword [ebp - 0x71c]
cmp word [eax + 0x753be], bx
jbe 0x6296d339
movzx eax, bx
inc eax
imul esi, eax, 0x68
mov dword [ebp - 0x730], eax
mov eax, dword [ebp - 0x71c]
fld dword [0x62b1d170]
lea edx, [eax + esi]
lea edi, [eax + esi + 0x7641c]
mov ecx, edi
movsx eax, byte [edx + 0x76440]
movsx dx, byte [edx + 0x76441]
mov word [ebp - 0x720], dx
sub eax, 0x31
fimul word [ebp - 0x720]
mov dword [ebp - 0x720], eax
fisubr dword [ebp - 0x720]
fchs
fdiv dword [0x62b1d174]
fstp qword [esp]
call method.OpenMPT::ModSample.Transpose_double_
push eax
push eax
imul eax, dword [ebp - 0x730], 0x68
add eax, dword [ebp - 0x71c]
mov dx, word [eax + 0x7643e]
mov word [eax + 0x76440], 0
test dh, 0x40
jne 0x6296d188
mov eax, edx
mov dword [esp], edi
and eax, 0x40
lea ecx, [ebp - 0x420]
cmp ax, 1
mov word [ebp - 0x41e], 0xb00
sbb eax, eax
and edx, 1
and eax, 0xfffffffe
add eax, 3
cmp dx, 1
mov byte [ebp - 0x41f], al
sbb edx, edx
mov eax, dword [ebp + 8]
and edx, 0xfffffff8
mov dword [esp + 4], eax
add edx, 0x10
mov byte [ebp - 0x420], dl
call sym.__ZNK7OpenMPT8SampleIO10ReadSampleERNS_9ModSampleERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataEN
push eax
push eax
jmp 0x6296d333
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [esp], 0xc
mov ecx, dword [ebp + 8]
mov edi, eax
call fcn.62924a94
push eax
lea eax, [ebp - 0x66c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x664]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [ebp - 0x66c], edx
mov dword [ebp - 0x668], 0
mov byte [ebp - 0x664], 0
call fcn.629959b0
mov eax, dword [ebp - 0x71c]
mov dword [ebp - 0x41c], 0x16
lea eax, [eax + esi + 0x76447]
lea esi, [ebp - 0x420]
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x66c]
mov ecx, esi
mov dword [esp], eax
call method.mpt::mpt_libopenmpt::StringBufRefImpl_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, esi
push eax
mov dword [esp], str.Loading_external_sample_____failed:_External_samples_are_not_supported.
call fcn.62a660d0
push edi
lea ecx, [ebp - 0x654]
mov dword [esp], esi
lea edi, [ebp - 0x624]
call fcn.62a64dfc
mov ecx, esi
push eax
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
mov eax, dword [ebp - 0x71c]
mov ecx, edi
mov esi, dword [eax + 0x13d068]
lea eax, [ebp - 0x66c]
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov dword [ebp - 0x680], esi
push ecx
lea esi, [ebp - 0x420]
lea eax, [ebp - 0x680]
mov dword [esp + 4], edi
mov dword [esp], eax
mov ecx, esi
call method.std::__cxx11::basic_string_char32_t__std::char_traits_char32_t___std::allocator_char32_t____OpenMPT::mpt::CharsetTranscoder::decode_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______std::__cxx11::basic_string_char__st
push edx
lea eax, [ebp - 0x63c]
push edx
mov dword [esp + 8], 0x3f
mov dword [esp + 4], esi
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt11encode_utf8INSt7__cxx1112basic_stringIcNS0_20encoding_char_traitsILNS0_15common_encodingE0ES5_EESaIc
mov ecx, esi
call method.std::__cxx11::basic_string_char32_t__std::char_traits_char32_t___std::allocator_char32_t___._M_dispose__
mov ecx, edi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov eax, dword [ebp - 0x730]
mov dword [ebp - 0x624], eax
lea eax, [ebp - 0x624]
lea edi, [ebp - 0x63c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x654]
mov dword [esp + 8], edi
mov dword [esp], eax
mov ecx, esi
call fcn.629c90c8
sub esp, 0xc
mov ecx, dword [ebp - 0x71c]
mov dword [esp + 4], esi
mov dword [esp], 2
call sym.__ZNK7OpenMPT10CSoundFile8AddToLogENS_8LogLevelERKNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS5_
mov ecx, esi
push eax
push eax
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
lea ecx, [ebp - 0x63c]
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
lea ecx, [ebp - 0x654]
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::_M_dispose__
lea ecx, [ebp - 0x66c]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x6296d333
inc ebx
jmp 0x6296d0a0
lea ecx, [ebp - 0x710]
call fcn.62a5ccf8
cmp dword [ebp - 0x728], 0
je 0x6296d35b
mov eax, dword [ebp - 0x728]
mov dword [esp], eax
call sym.operator_delete_void_
lea ecx, [ebp - 0x6d0]
call fcn.6292595c
lea ecx, [ebp - 0x6e4]
call fcn.6292595c
jmp 0x6296d4b3
mov al, byte [ebp - 0x739]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8