Function at 0x6296ac5c
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 0x6296acb2
mov ecx, dword [ebp + 8]
mov dword [esp], 0x7e
call fcn.62924a9c
mov eax, ebx
push ecx
call method.OpenMPT.ValidateHeader_OpenMPT::MT2FileHeader_const_
test al, al
jne 0x6296acbe
mov byte [ebp - 0x73d], 0
jmp 0x6296d164
mov dword [esp], 0x100
mov ecx, dword [ebp + 8]
call fcn.629c8e18
mov byte [ebp - 0x73d], al
test al, al
push edx
je 0x6296acb2
cmp dword [ebp + 0xc], 0x40
je 0x6296d164
mov ecx, dword [ebp - 0x71c]
mov dword [esp], 0x100000
call method.OpenMPT::CSoundFile.InitializeGlobals_OpenMPT::MODTYPE_
mov ecx, dword [ebp - 0x71c]
lea esi, [ebp - 0x420]
push eax
call method.OpenMPT::CSoundFile.InitializeChannels__
lea ecx, [ebp - 0x420]
mov dword [esp], str.MadTracker_.
call fcn.62a64844
lea ecx, [ebp - 0x5e8]
push eax
lea eax, [ebp - 0x420]
mov dword [esp], eax
call fcn.62a635c8
lea ecx, [ebp - 0x420]
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__
movzx eax, byte [ebp - 0x596]
mov dword [ebp - 0x624], eax
lea eax, [ebp - 0x408]
mov dword [ebp - 0x410], eax
lea edx, [ebp - 0x624]
lea eax, [ebp - 0x520]
mov dword [esp + 8], esi
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.62921950
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
lea ecx, [ebp - 0x420]
call fcn.629c829c
mov eax, dword [ebp - 0x71c]
sub esp, 0xc
mov ebx, esi
lea ecx, [eax + 0x13cff0]
lea eax, [ebp - 0x420]
mov dword [esp], 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___::operator_std::__cxx11::basic_string_char__mpt::mpt_libopenmpt::encodi
lea ecx, [ebp - 0x420]
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__
lea ecx, [ebp - 0x420]
mov dword [esp], 0x62b1b003
call fcn.62a64844
mov eax, dword [ebp - 0x71c]
lea ecx, [eax + 0x13d008]
lea eax, [ebp - 0x420]
push edx
mov dword [esp], 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___::operator_std::__cxx11::basic_string_char__mpt::mpt_libopenmpt::encodi
push ecx
lea ecx, [ebp - 0x420]
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 dword [ebp - 0x608], eax
lea eax, [ebp - 0x608]
mov dword [esp], eax
mov ecx, ebx
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]
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x624], 0x16
push 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 0x6296aebe
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 ebx, [ebp - 0x420]
lea esi, [ebp - 0x520]
mov ecx, ebx
lea edi, [ebp - 0x5e8]
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], edi
lea ecx, [eax + 0x13d020]
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 eax, dword [ebp - 0x71c]
mov ecx, ebx
mov dword [ebp - 0x51c], 0x40
mov byte [ebp - 0x518], 2
mov dword [eax + 0x13d068], 0x16
lea eax, [ebp - 0x574]
mov dword [esp], esi
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]
mov dword [esp], ebx
lea ecx, [eax + 0x13cfa8]
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____
mov ecx, ebx
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov esi, dword [ebp - 0x71c]
mov ax, word [ebp - 0x52e]
mov word [esi + 0x753bc], ax
movzx eax, byte [ebp - 0x52a]
cmp al, 0x1f
jbe 0x6296af90
mov eax, 0x1f
jmp 0x6296af99
test al, al
jne 0x6296af99
mov eax, 1
mov esi, dword [ebp - 0x71c]
mov dword [esi + 0x753c4], eax
mov eax, dword [ebp - 0x524]
mov word [esi + 0x753c0], ax
mov ax, word [ebp - 0x522]
mov word [esi + 0x753be], ax
mov dword [esi + 0x753cc], 0x1312d0
movzx eax, byte [ebp - 0x529]
mov dword [esi + 0x753d0], 0x8018
cmp al, 0x20
jbe 0x6296afe6
mov eax, 0x20
jmp 0x6296afef
test al, al
jne 0x6296afef
mov eax, 1
mov esi, dword [ebp - 0x71c]
mov ecx, dword [ebp + 8]
mov dword [esi + 0x753d8], eax
mov dword [esi + 0x753e8], 0x30
shl eax, 2
mov dword [esi + 0x753e4], 0x60
mov dword [esi + 0x753dc], eax
mov dword [esp], 0x100
call fcn.629c8e18
test al, al
lea eax, [ebp - 0x520]
push ecx
jne 0x6296b05e
jmp 0x6296b054
mov byte [eax], 0
inc eax
cmp ebx, eax
jne 0x6296b054
jmp 0x6296b073
mov dword [esp], eax
mov dword [esp + 4], 0x100
mov ecx, dword [ebp + 8]
call fcn.62924ad4
push edx
push edx
mov edi, dword [ebp - 0x71c]
movzx eax, word [ebp - 0x534]
movzx ebx, byte [edi + 0x76418]
imul ebx, ebx, 0x2c
movzx esi, ax
add ebx, dword [edi + 0x76408]
cmp ax, 0x100
jbe 0x6296b09e
mov esi, 0x100
cmp ax, 0x100
mov word [ebp - 0x420], 0xffff
jbe 0x6296b0b2
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 0x6296b0e0
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 0x6296b0ed
jae 0x6296b0ed
add eax, eax
add eax, edx
cmp edi, eax
je 0x6296b0ed
mov dword [ebx + 4], eax
xor eax, eax
cmp esi, eax
jle 0x6296b123
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 0x6296b11c
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0x62b1b007
call method.std.__throw_out_of_range_fmt_char_const__..._
mov word [ecx + eax*2], di
inc eax
jmp 0x6296b0ef
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.62924b20
lea ecx, [ebp - 0x6e4]
push eax
push eax
mov dword [esp], ebx
call fcn.62924e34
mov ecx, ebx
push eax
call fcn.62925d58
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.62924b20
push eax
lea ecx, [ebp - 0x6d0]
push eax
mov dword [esp], ebx
call fcn.62924e34
mov ecx, ebx
push eax
call fcn.62925d58
mov eax, dword [ebp - 0x71c]
cmp word [ebp - 0x748], 0
mov eax, dword [eax + 0x753bc]
mov word [ebp - 0x738], ax
je 0x6296b1ff
mov esi, dword [ebp - 0x71c]
add eax, 8
mov word [esi + 0x753bc], ax
mov eax, dword [ebp + 0xc]
and eax, 1
mov dword [ebp - 0x750], eax
jne 0x6296b222
mov word [ebp - 0x734], 0
mov byte [ebp - 0x720], 0
jmp 0x6296b2b9
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 0x6296b20d
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.62924b20
push esi
lea ecx, [ebp - 0x420]
push esi
mov dword [esp], ebx
call fcn.62924e34
mov ecx, ebx
push edi
call fcn.62925d58
cmp dword [ebp - 0x728], 0x400
ja 0x6296b2d1
cmp dword [ebp - 0x728], 0
jne 0x6296b2db
lea ecx, [ebp - 0x420]
call fcn.62925d58
inc word [ebp - 0x734]
mov eax, dword [ebp - 0x734]
cmp ax, word [ebp - 0x530]
jb 0x6296b240
jmp 0x6296b5f8
mov dword [ebp - 0x728], 0x400
cmp dword [ebp - 0x750], 0
je 0x6296b2a7
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 0x6296b2a7
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 0x6296b5b4
mov word [ebp - 0x73c], 0
mov dword [ebp - 0x730], 0
mov dword [esp], 1
lea ecx, [ebp - 0x420]
call fcn.629c8e18
test al, al
push edx
je 0x6296b2a7
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 0x6296b395
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 0x6296b4fa
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 - 0x73c]
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 0x6296b3ff
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e8], al
test esi, 2
je 0x6296b41b
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e7], al
test esi, 4
je 0x6296b437
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e6], al
test esi, 8
je 0x6296b453
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e5], al
test esi, 0x10
je 0x6296b46f
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e4], al
test esi, 0x20
je 0x6296b48b
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e3], al
and esi, 0x40
je 0x6296b4a4
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 0x6296b4d1
mov eax, edx
mov edx, ebx
xor ecx, ecx
cmp ecx, eax
je 0x6296b4fa
mov esi, dword [ebp - 0x71c]
inc ecx
movzx esi, word [esi + 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 0x6296b4d5
movzx eax, byte [ebp - 0x744]
mov edi, dword [ebp - 0x730]
lea eax, [edi + eax + 1]
mov dword [ebp - 0x730], eax
mov esi, dword [ebp - 0x728]
cmp dword [ebp - 0x730], esi
jb 0x6296b52e
sub dword [ebp - 0x730], esi
inc word [ebp - 0x73c]
jmp 0x6296b511
mov esi, dword [ebp - 0x738]
cmp word [ebp - 0x73c], si
jb 0x6296b347
jmp 0x6296b2a7
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 0x6296b5e7
mov dword [esp], 7
lea ecx, [ebp - 0x420]
call fcn.62924a9c
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 0x6296b546
inc dword [ebp - 0x730]
mov edi, dword [ebp - 0x730]
cmp dword [ebp - 0x728], edi
je 0x6296b2a7
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 0x6296b593
lea edi, [ebp - 0x5e8]
mov ecx, 7
xor eax, eax
rep stosb byte es:[edi], al
jmp 0x6296b57c
movzx eax, word [ebp - 0x52c]
lea edx, [eax - 2]
cmp dx, 0x1385
ja 0x6296b6a2
cmp byte [ebp - 0x720], 0
je 0x6296b655
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 esi, dword [ebp - 0x71c]
mov dword [esi + 0x753cc], eax
mov byte [esi + 0x753e0], 0
jmp 0x6296b6a2
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 [0x62b1b0c0]
fmul dword [0x62b1b0c4]
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 0x6296b6cf
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 0x6296b6d9
mov dword [ebp - 0x728], 0
mov dword [ebp - 0x744], 0
mov dword [esp], 8
lea ecx, [ebp - 0x6d0]
call fcn.629c8e18
test al, al
push edx
je 0x6296bc94
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.62924b20
push eax
lea ecx, [ebp - 0x63c]
push eax
mov dword [esp], esi
call fcn.62924e34
mov ecx, esi
push eax
call fcn.62925d58
cmp ebx, 0x32545356
je 0x6296bc6c
ja 0x6296b77b
cmp ebx, 0x4d5553
je 0x6296bb26
cmp ebx, 0x2b4d5042
je 0x6296b7a6
cmp ebx, 0x47534d
je 0x6296badc
jmp 0x6296bc84
cmp ebx, 0x4e544150
je 0x6296ba23
cmp ebx, 0x534b5254
je 0x6296b85f
xor esi, esi
cmp ebx, 0x4c4b5254
je 0x6296ba0b
jmp 0x6296bc84
cmp byte [ebp - 0x720], 0
jne 0x6296bc84
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 0x6296bc84
mov dword [esp], 8
lea ecx, [ebp - 0x63c]
call fcn.62924a9c
fld qword [ebp - 0x420]
fcom qword [0x62b1b0c8]
fnstsw ax
push edi
sahf
jbe 0x6296bc82
mov eax, dword [ebp - 0x71c]
mov esi, dword [ebp - 0x71c]
mov dword [ebp - 0x72c], 0
mov eax, dword [eax + 0x753c4]
imul eax, dword [esi + 0x753d8]
mov dword [ebp - 0x730], eax
fild qword [ebp - 0x730]
fmulp st(1)
fdivr dword [0x62b1b0c0]
fmul dword [0x62b1b0c4]
fstp qword [esp]
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_round_unsigned_int__double_
mov dword [esi + 0x753cc], eax
jmp 0x6296bc84
lea eax, [ebp - 0x63c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
shr ax, 8
je 0x6296b884
mov esi, dword [ebp - 0x71c]
movzx eax, ax
mov dword [esi + 0x753e4], eax
jmp 0x6296b894
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 0x6296bc84
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 0x6296b931
mov dword [esp], 0x406
lea ecx, [ebp - 0x63c]
call fcn.62924a9c
movzx edx, bx
push ecx
mov ecx, edx
movzx eax, word [ebp - 0x420]
shl ecx, 5
mov esi, dword [ebp - 0x71c]
sar eax, 0xa
mov edi, dword [ebp - 0x728]
mov word [esi + ecx + 0x7541e], ax
mov al, byte [ebp - 0x41d]
mov byte [edi + edx], al
inc ebx
jmp 0x6296b8b6
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.629c8e18
test al, al
push edx
je 0x6296bc84
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 0x6296b934
jmp 0x6296bc84
xor ebx, ebx
cmp bx, word [ebp - 0x530]
jae 0x6296bc84
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.629c8e18
test al, al
push edx
je 0x6296bc84
mov eax, dword [ebp - 0x71c]
mov esi, dword [ebp - 0x71c]
mov eax, dword [eax + 0x763fc]
sub eax, dword [esi + 0x763f8]
sar eax, 6
cmp bx, ax
jae 0x6296bc84
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 0x6296ba25
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.62924a9c
mov eax, dword [ebp - 0x71c]
lea ebx, [ebp - 0x63c]
mov ecx, ebx
push esi
lea esi, [eax + 0x13cfd8]
call fcn.629c8e48
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 0x6296bc84
mov dword [esp], 6
lea ecx, [ebp - 0x63c]
call fcn.629c8e18
test al, al
push ebx
lea eax, [ebp - 0x654]
jne 0x6296bb53
lea edx, [ebp - 0x64e]
mov byte [eax], 0
inc eax
cmp edx, eax
jne 0x6296bb49
jmp 0x6296bb6b
mov dword [esp], eax
mov dword [esp + 4], 6
lea ecx, [ebp - 0x63c]
call fcn.62924ad4
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 0x6296bc5f
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 0x6296bc5f
lea ecx, [ebp - 0x624]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x6296bc84
lea eax, [ebp - 0x63c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [ebp - 0x744], eax
jmp 0x6296bc84
fstp st(0)
lea ecx, [ebp - 0x63c]
call fcn.62925d58
jmp 0x6296b6e3
mov eax, dword [ebp - 0x71c]
xor ecx, ecx
lea edi, [eax + 0xdd43c]
mov eax, dword [ebp - 0x71c]
movzx ebx, word [eax + 0x753bc]
cmp cx, bx
jae 0x6296bd44
movzx edx, cx
mov eax, dword [ebp - 0x728]
movsx eax, byte [eax + edx]
cmp eax, edx
jle 0x6296bd3e
cmp eax, ebx
jge 0x6296bd3e
shl eax, 5
mov esi, dword [ebp - 0x71c]
mov al, byte [esi + eax + 0x75420]
test al, al
je 0x6296bd3e
shl edx, 5
lea ebx, [esi + edx]
mov dl, byte [ebx + 0x75420]
test dl, dl
jne 0x6296bcf9
mov byte [ebx + 0x75420], al
jmp 0x6296bd3e
dec edx
mov byte [ebp - 0x730], dl
movzx ebx, byte [ebp - 0x730]
imul ebx, ebx, 0xa0
add ebx, edi
mov esi, dword [ebx + 0x1c]
cmp esi, 0x7f
jbe 0x6296bd27
lea edx, [esi - 0x80]
mov byte [ebp - 0x730], dl
mov edx, esi
cmp dl, 0x7f
jne 0x6296bd00
dec eax
cmp al, 0xf9
ja 0x6296bd37
movzx eax, al
sub eax, 0xffffff80
mov dword [ebx + 0x1c], eax
jmp 0x6296bd3e
mov dword [ebx + 0x1c], 0
inc ecx
jmp 0x6296bca2
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 0x6296c223
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 0x6296bda9
mov dword [esp], 0x112
lea ecx, [ebp - 0x6e4]
call fcn.62924a9c
push edi
jmp 0x6296bdb8
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 esi
mov word [ebp + ebx*2 - 0x706], ax
mov word [ebp + ebx*2 - 0x6f6], dx
cmp ax, 0xffff
je 0x6296becd
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 ecx
mov esi, eax
push ecx
test eax, eax
je 0x6296bed7
lea eax, [ebp - 0x5e0]
mov dword [esp + 8], 0x62b1b066
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 dword [esp], eax
mov ecx, edi
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____
lea ecx, [ebp - 0x5e8]
push edx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea eax, [ebp - 0x624]
mov dword [esp], edi
mov dword [esp + 4], eax
lea ecx, [ebp - 0x5e8]
mov dword [ebp - 0x624], ebx
call fcn.629c8a68
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 eax
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 0x6296bed7
mov word [ebp + ebx*2 - 0x706], 0
inc ebx
cmp ebx, 9
jne 0x6296bdbd
movzx eax, word [ebp - 0x420]
lea ecx, [ebp - 0x608]
mov dword [esp], eax
call fcn.62a5b6d4
xor ebx, ebx
push eax
movzx eax, word [ebp - 0x420]
cmp eax, ebx
jbe 0x6296bf62
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.62924b20
push ecx
lea edi, [ebp - 0x5e8]
push ecx
mov ecx, edi
mov dword [esp], esi
call fcn.62924e34
imul ecx, ebx, 0x14
push eax
add ecx, dword [ebp - 0x608]
mov dword [esp], edi
inc ebx
call fcn.62925efc
mov ecx, edi
push eax
call fcn.62925d58
mov ecx, esi
call fcn.62925d58
jmp 0x6296bef9
movzx ebx, word [ebp - 0x530]
test ebx, ebx
je 0x6296bf93
lea eax, [ebx + ebx]
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov dword [ebp - 0x730], eax
xor eax, eax
mov edi, dword [ebp - 0x730]
mov word [edi + eax*2], 0xffff
inc eax
cmp ebx, eax
jne 0x6296bf80
jmp 0x6296bf9d
mov dword [ebp - 0x730], 0
mov dword [ebp - 0x720], 0
movzx eax, word [ebp - 0x534]
cmp eax, dword [ebp - 0x720]
jbe 0x6296c201
mov eax, dword [ebp - 0x720]
movzx edx, word [ebp - 0x420]
movzx ecx, byte [ebp + eax - 0x40e]
mov eax, ecx
cmp ecx, edx
jge 0x6296c1f6
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 0x6296c1f6
movzx ecx, bx
lea edx, [ecx + ecx]
add edx, dword [ebp - 0x730]
mov di, word [edx]
cmp di, 0xffff
jne 0x6296c024
mov word [edx], ax
jmp 0x6296c06d
cmp di, ax
je 0x6296c06d
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 0x6296c06d
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 0x6296c1f6
shl ebx, 6
add eax, ebx
mov dword [ebp - 0x748], ebx
mov esi, dword [eax]
cmp dword [eax + 4], esi
je 0x6296c1f6
mov eax, dword [ebp - 0x720]
movzx eax, byte [ebp + eax - 0x40e]
imul eax, eax, 0x14
add eax, dword [ebp - 0x608]
mov ecx, eax
mov dword [ebp - 0x73c], eax
mov dword [eax + 8], 0
call fcn.629c8e60
shr eax, 5
mov dword [ebp - 0x734], 0
mov dword [ebp - 0x74c], eax
mov eax, dword [ebp - 0x71c]
mov edi, dword [ebp - 0x748]
add edi, dword [eax + 0x763f8]
mov eax, dword [ebp - 0x734]
cmp eax, dword [edi + 0xc]
jae 0x6296c1f6
mov eax, dword [ebp - 0x71c]
mov ecx, edi
mov eax, dword [eax + 0x753bc]
mov word [ebp - 0x750], ax
lea esi, [eax - 8]
call method.OpenMPT::CPattern.GetNumChannels___const
movzx ebx, ax
imul ebx, dword [ebp - 0x734]
movzx esi, si
add ebx, esi
xor esi, esi
imul ebx, ebx, 6
add ebx, dword [edi]
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 0x6296c16d
inc esi
add ebx, 6
cmp esi, 8
jne 0x6296c143
inc dword [ebp - 0x734]
jmp 0x6296c0ef
mov dword [esp], 4
mov ecx, dword [ebp - 0x73c]
call fcn.629c8e18
test al, al
push edi
jne 0x6296c190
mov dword [ebp - 0x5e8], 0
jmp 0x6296c1ae
lea eax, [ebp - 0x5e8]
mov dword [esp + 4], 4
mov dword [esp], eax
mov ecx, dword [ebp - 0x73c]
call fcn.62924ad4
push ecx
push ecx
mov dl, byte [ebp - 0x5e8]
test dl, dl
jns 0x6296c15c
mov ax, word [ebp + esi*2 - 0x704]
mov byte [ebx], 0x3d
mov byte [ebx + 1], al
mov al, dl
and al, 0x1f
je 0x6296c1dd
and dl, 0x10
je 0x6296c1d3
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 0x6296c15c
inc dword [ebp - 0x720]
jmp 0x6296bfa7
cmp dword [ebp - 0x730], 0
je 0x6296c218
mov eax, dword [ebp - 0x730]
mov dword [esp], eax
call sym.operator_delete_void_
lea ecx, [ebp - 0x608]
call fcn.62a5b8e0
mov eax, dword [ebp - 0x528]
test al, 2
je 0x6296c2f8
movzx edx, word [ebp - 0x738]
test al, 8
je 0x6296c249
mov esi, dword [ebp - 0x71c]
movzx edx, word [esi + 0x753bc]
cmp word [ebp - 0x596], 0x24f
ja 0x6296c25e
mov dword [ebp - 0x744], 0
shr eax, 4
xor edi, edi
and eax, 1
add eax, edx
add eax, dword [ebp - 0x744]
mov dword [ebp - 0x730], eax
movzx eax, word [ebp - 0x530]
cmp eax, edi
jbe 0x6296c2f8
xor esi, esi
cmp esi, dword [ebp - 0x730]
jne 0x6296c28c
inc edi
jmp 0x6296c274
mov dword [esp], 4
mov ecx, dword [ebp + 8]
call fcn.629c8e18
test al, al
push edx
je 0x6296c289
mov eax, dword [ebp + 8]
cmp word [ebp - 0x596], 0x202
mov dword [esp], eax
jbe 0x6296c2c5
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 0x6296c2d8
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 0x6296c2f5
test bl, 1
je 0x6296c2f1
mov dword [esp], 0x104
mov ecx, dword [ebp + 8]
call fcn.62924a9c
push eax
shr ebx, 1
jmp 0x6296c2d8
inc esi
jmp 0x6296c281
mov dword [esp], 0xff
lea ecx, [ebp - 0x710]
call fcn.62a5b6d4
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 esi, eax
cmp eax, 0x20
jne 0x6296c341
mov esi, 0x1ac
cmp word [ebp - 0x596], 0x201
jbe 0x6296c353
test esi, esi
je 0x6296c353
add esi, 4
lea edi, [ebp - 0x66c]
mov eax, dword [ebp + 8]
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, edi
call fcn.62924b20
push ecx
lea ebx, [ebp - 0x420]
push ecx
mov ecx, ebx
mov dword [esp], edi
call fcn.62924e34
push edi
imul edi, dword [ebp - 0x730], 0x14
add edi, dword [ebp - 0x710]
mov dword [esp], ebx
mov ecx, edi
call fcn.62925efc
lea ecx, [ebp - 0x624]
push eax
mov dword [esp], edi
call fcn.62a332f4
push eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x61c], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x618], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x614], eax
test eax, eax
je 0x6296c3cb
add eax, 4
call fcn.629c6250
mov ecx, ebx
call fcn.62925d58
lea ecx, [ebp - 0x66c]
call fcn.62925d58
mov eax, dword [ebp - 0x730]
cmp word [ebp - 0x524], ax
jbe 0x6296c7e5
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 ebx, eax
push edx
test eax, eax
je 0x6296c7e5
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, [ebx + 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 esi, esi
je 0x6296c7e5
lea esi, [ebp - 0x624]
lea eax, [ebp - 0x420]
mov dword [esp], eax
mov ecx, esi
call fcn.629ac378
cmp word [ebp - 0x596], 0x200
push eax
mov word [ebp - 0x720], 0
jbe 0x6296c4a1
mov dword [esp], esi
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov word [ebp - 0x720], ax
cmp word [ebp - 0x596], 0x201
mov dword [ebp - 0x738], 3
jbe 0x6296c4ca
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 [ebx], 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 [ebx + 0x10], al
movzx eax, byte [ebp - 0x3b7]
and eax, 3
mov al, byte [ebp + eax - 0x66c]
mov byte [ebx + 0x11], al
movzx eax, word [ebp - 0x3b8]
sar eax, 0xc
and eax, 3
mov al, byte [ebp + eax - 0x654]
mov byte [ebx + 0x12], al
test byte [ebp - 0x738], 1
je 0x6296c68d
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 0x6296c57e
mov dword [esp], 0x48
lea ecx, [ebp - 0x624]
call fcn.62924a9c
push eax
jmp 0x6296c58d
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 esi, [ebx + 0x44]
mov al, byte [ebp + eax - 0x63c]
cmp al, 1
je 0x6296c5b5
lea esi, [ebx + 0x58]
cmp al, 2
je 0x6296c5b5
lea esi, [ebx + 0x30]
cmp dword [ebp - 0x734], 3
mov al, byte [ebp - 0x5e8]
mov cl, byte [esi + 0xc]
jne 0x6296c5d0
mov dl, cl
or edx, 0x10
test al, 1
jne 0x6296c5d5
mov dl, cl
and edx, 0xffffffef
mov cl, dl
and ecx, 0xfffffffe
test al, 1
je 0x6296c5e3
or edx, 1
mov cl, dl
mov dl, cl
and edx, 0xfffffffb
test al, 2
je 0x6296c5f1
mov dl, cl
or edx, 4
mov cl, dl
and ecx, 0xfffffffd
test al, 4
je 0x6296c5ff
or edx, 2
mov cl, dl
mov byte [esi + 0xc], cl
movzx eax, byte [ebp - 0x5e7]
cmp al, 0x10
jbe 0x6296c612
mov eax, 0x10
mov ecx, dword [esi + 4]
mov edi, dword [esi]
mov edx, ecx
sub edx, edi
sar edx, 2
cmp eax, edx
jbe 0x6296c631
sub eax, edx
mov ecx, esi
mov dword [esp], eax
call method.std::vector_OpenMPT::EnvelopeNode__std::allocator_OpenMPT::EnvelopeNode___._M_default_append_unsigned_int_
push edi
jmp 0x6296c63d
jae 0x6296c63d
lea eax, [edi + eax*4]
cmp ecx, eax
je 0x6296c63d
mov dword [esi + 4], eax
mov al, byte [ebp - 0x5e6]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov byte [esi + 0x10], al
mov byte [esi + 0xf], al
sub edx, ecx
mov ax, word [ebp - 0x5e5]
mov edi, edx
sar edi, 2
mov word [esi + 0xd], ax
xor eax, eax
cmp eax, edi
je 0x6296c68d
mov esi, dword [ebp + eax*4 - 0x5e0]
mov word [ecx + eax*4], si
mov si, word [ebp + eax*4 - 0x5de]
cmp si, 0x40
jbe 0x6296c684
mov esi, 0x40
mov edx, esi
mov byte [ecx + eax*4 + 2], dl
inc eax
jmp 0x6296c662
inc dword [ebp - 0x734]
shr dword [ebp - 0x738], 1
cmp dword [ebp - 0x734], 4
jne 0x6296c539
test byte [ebx + 0x3c], 1
jne 0x6296c6b8
cmp byte [ebx + 0x10], 3
je 0x6296c6b8
mov dword [ebx], 0x7fff
cmp word [ebp - 0x720], 0
mov word [ebx + 0x15], 0x80ff
je 0x6296c7e5
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 esi
cmp edx, 0x20
push esi
jne 0x6296c704
mov dword [esp], 0x20
lea ecx, [ebp - 0x624]
call fcn.62924a9c
push ecx
jmp 0x6296c713
lea edi, [ebp - 0x5e8]
mov ecx, 8
xor eax, eax
rep stosd dword es:[edi], eax
test byte [ebp - 0x720], 2
je 0x6296c75d
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 0x6296c745
mov al, 0x7f
or eax, 0xffffff80
mov byte [ebx + 0x15], al
mov al, byte [ebp - 0x5e4]
test al, al
jns 0x6296c757
mov al, 0x7f
or eax, 0xffffff80
mov byte [ebx + 0x16], al
cmp byte [ebp - 0x5e7], 1
sete byte [ebx + 0x19]
test byte [ebp - 0x720], 4
je 0x6296c7e5
mov al, byte [ebp - 0x5e1]
inc eax
mov byte [ebx + 0x1f], al
mov al, byte [ebp - 0x5e0]
test al, al
lea edx, [eax + 1]
mov byte [ebx + 0x22], dl
jns 0x6296c795
mov al, byte [ebp - 0x5d9]
inc eax
mov byte [ebx + 0x1e], al
mov dl, byte [ebp - 0x5dc]
test dl, dl
jne 0x6296c7a3
xor eax, eax
jmp 0x6296c7d1
mov eax, 1
movsx ecx, dl
lea edx, [ecx + eax]
cmp edx, 0x78
jle 0x6296c7ba
mov edx, 0x78
jmp 0x6296c7c3
test edx, edx
jg 0x6296c7c3
mov edx, 1
mov byte [ebx + eax + 0x6b], dl
inc eax
cmp eax, 0x81
jne 0x6296c7ab
jmp 0x6296c79f
mov word [ebx + eax + 0xec], 0
add eax, 2
cmp eax, 0x100
jne 0x6296c7d1
lea ecx, [ebp - 0x624]
call fcn.62925d58
inc dword [ebp - 0x730]
cmp dword [ebp - 0x730], 0xff
jne 0x6296c315
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.62924b20
push ecx
push ecx
lea ecx, [ebp - 0x63c]
mov dword [esp], edi
call fcn.62924e34
mov ecx, edi
push eax
call fcn.62925d58
cmp word [ebp - 0x522], si
jbe 0x6296c8f0
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 0x6296caba
cmp word [ebp - 0x522], si
jbe 0x6296caba
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 0x6296c958
mov dword [esp], 0x1a
lea ecx, [ebp - 0x63c]
call fcn.62924a9c
push eax
jmp 0x6296c967
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 0x6296c98a
or word [ebx + 0x22], 1
shr eax, 1
mov dword [ebx], eax
cmp byte [ebp - 0x61b], 1
jbe 0x6296c99a
or word [ebx + 0x22], 0x40
shr dword [ebx], 1
mov al, byte [ebp - 0x619]
cmp al, 1
jne 0x6296c9ab
or word [ebx + 0x22], 2
jmp 0x6296c9b4
cmp al, 2
jne 0x6296c9b4
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 0x6296c9e8
or word [ebx + 0x22], 0x100
jmp 0x6296c9f0
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 0x6296ca3b
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 0x6296ca4b
or word [ebx + 0x22], 0x4000
test al, 8
je 0x6296caba
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 0x6296cab2
movzx edx, word [eax + ebp - 0x704]
mov edi, dword [ebp - 0x71c]
mov edx, dword [edi + edx*4 + 0xdbd1c]
test edx, edx
je 0x6296cab2
mov byte [edx + 0xe], 0
add eax, 2
cmp eax, 0x10
jne 0x6296ca85
lea ecx, [ebp - 0x63c]
inc esi
call fcn.62925d58
add ebx, 0x68
cmp esi, 0x100
jne 0x6296c830
mov word [ebp - 0x730], 0
mov eax, dword [ebp - 0x730]
cmp ax, word [ebp - 0x524]
jae 0x6296cd3c
movzx ebx, ax
imul ebx, ebx, 0x14
mov ecx, dword [ebp - 0x710]
add ecx, ebx
call fcn.629c8e60
test eax, eax
je 0x6296cd30
add ebx, dword [ebp - 0x710]
lea eax, [ebp - 0x420]
mov ecx, ebx
mov dword [ebx + 8], 0
mov dword [esp], eax
call fcn.629ac378
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 0x6296cbdc
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 0x6296cb79
mov esi, dword [ebp - 0x624]
mov eax, dword [ebp - 0x620]
sub eax, esi
test eax, eax
jle 0x6296cbb5
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._memmove
jmp 0x6296cbb9
test esi, esi
je 0x6296cbc1
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.629c8e18
test al, al
push ecx
je 0x6296cc11
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.62924ad4
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 0x6296cc2f
cmp byte [eax + 0x22], 0
je 0x6296cc3f
lea ecx, [ebp - 0x624]
call method.std::_Vector_base_OpenMPT::MT2Group__std::allocator_OpenMPT::MT2Group___._Vector_base____clone_.isra.0_
jmp 0x6296cd30
mov dword [eax + 4], 0x20
xor edx, edx
mov word [eax + edx + 0xec], 0
add edx, 2
cmp edx, 0x100
jne 0x6296cc48
xor ebx, ebx
movzx edx, byte [ebp + ebx - 0x41e]
movzx ecx, word [ebp - 0x420]
cmp edx, ecx
jge 0x6296cd21
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 0x6296cd21
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 cl, byte [esi + 2]
mov esi, 1
mov byte [edx + 0x76441], cl
mov ecx, dword [ebp - 0x720]
dec ecx
mov edx, ecx
shr edx, 5
shl esi, cl
test dword [ebp + edx*4 - 0x608], esi
mov ecx, esi
je 0x6296cd13
mov byte [eax + 0xe], 0
test dword [ebp + edx*4 - 0x5e8], ecx
je 0x6296cd21
mov byte [eax + ebx + 0x78], 0x3d
inc ebx
cmp ebx, 0x60
jne 0x6296cc5f
jmp 0x6296cc2f
inc word [ebp - 0x730]
jmp 0x6296cade
test byte [ebp + 0xc], 2
je 0x6296cfe5
xor edi, edi
mov eax, dword [ebp - 0x71c]
cmp word [eax + 0x753be], di
jbe 0x6296cfe5
movzx eax, di
inc eax
imul ebx, eax, 0x68
mov dword [ebp - 0x730], eax
mov eax, dword [ebp - 0x71c]
fld dword [0x62b1b0d0]
lea edx, [eax + ebx]
lea esi, [eax + ebx + 0x7641c]
mov ecx, esi
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 [0x62b1b0d4]
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 0x6296ce30
mov eax, edx
mov dword [esp], esi
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 0x6296cfdf
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 esi, eax
call fcn.62924a9c
push eax
lea eax, [ebp - 0x66c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x664]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [ebp - 0x66c], edx
mov dword [ebp - 0x668], 0
mov byte [ebp - 0x664], 0
call fcn.62995020
mov eax, dword [ebp - 0x71c]
mov dword [ebp - 0x41c], 0x16
lea eax, [eax + ebx + 0x76447]
lea ebx, [ebp - 0x420]
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x66c]
mov ecx, ebx
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, ebx
push eax
mov dword [esp], str.Loading_external_sample_____failed:_External_samples_are_not_supported.
call fcn.62a64844
push esi
lea ecx, [ebp - 0x654]
mov dword [esp], ebx
lea esi, [ebp - 0x624]
call fcn.62a635c8
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__
mov eax, dword [ebp - 0x71c]
mov ecx, esi
mov ebx, 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], ebx
push ecx
lea ebx, [ebp - 0x420]
lea eax, [ebp - 0x680]
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, ebx
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], ebx
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt11encode_utf8INSt7__cxx1112basic_stringIcNS0_20encoding_char_traitsILNS0_15common_encodingE0ES5_EESaIc
mov ecx, ebx
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 - 0x730]
mov dword [ebp - 0x624], eax
lea eax, [ebp - 0x624]
lea esi, [ebp - 0x63c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x654]
mov dword [esp + 8], esi
mov dword [esp], eax
mov ecx, ebx
call fcn.629c829c
sub esp, 0xc
mov ecx, dword [ebp - 0x71c]
mov dword [esp + 4], ebx
mov dword [esp], 2
call sym.__ZNK7OpenMPT10CSoundFile8AddToLogENS_8LogLevelERKNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS5_
lea ecx, [ebp - 0x420]
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 0x6296cfdf
inc edi
jmp 0x6296cd48
lea ecx, [ebp - 0x710]
call fcn.62a5b8e0
cmp dword [ebp - 0x728], 0
je 0x6296d007
mov eax, dword [ebp - 0x728]
mov dword [esp], eax
call sym.operator_delete_void_
lea ecx, [ebp - 0x6d0]
call fcn.62925d58
lea ecx, [ebp - 0x6e4]
call fcn.62925d58
jmp 0x6296d164
mov al, byte [ebp - 0x73d]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8