Function at 0x700fe3f4
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 0x700fe44a
mov ecx, dword [ebp + 8]
mov dword [esp], 0x7e
call fcn.700a905c
mov eax, ebx
push ecx
call method.OpenMPT.ValidateHeader_OpenMPT::MT2FileHeader_const_
test al, al
jne 0x700fe456
mov byte [ebp - 0x73d], 0
jmp 0x701008fc
mov dword [esp], 0x100
mov ecx, dword [ebp + 8]
call fcn.7015bbf8
mov byte [ebp - 0x73d], al
test al, al
push edx
je 0x700fe44a
cmp dword [ebp + 0xc], 0x40
je 0x701008fc
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.701f96d4
lea ecx, [ebp - 0x5e8]
push eax
lea eax, [ebp - 0x420]
mov dword [esp], eax
call fcn.701f8458
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.700a5f10
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.7015b07c
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], 0x702b2ac3
call fcn.701f96d4
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 0x700fe656
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 0x700fe728
mov eax, 0x1f
jmp 0x700fe731
test al, al
jne 0x700fe731
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 0x700fe77e
mov eax, 0x20
jmp 0x700fe787
test al, al
jne 0x700fe787
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.7015bbf8
test al, al
lea eax, [ebp - 0x520]
push ecx
jne 0x700fe7f6
jmp 0x700fe7ec
mov byte [eax], 0
inc eax
cmp ebx, eax
jne 0x700fe7ec
jmp 0x700fe80b
mov dword [esp], eax
mov dword [esp + 4], 0x100
mov ecx, dword [ebp + 8]
call fcn.700a9094
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 0x700fe836
mov esi, 0x100
cmp ax, 0x100
mov word [ebp - 0x420], 0xffff
jbe 0x700fe84a
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 0x700fe878
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 0x700fe885
jae 0x700fe885
add eax, eax
add eax, edx
cmp edi, eax
je 0x700fe885
mov dword [ebx + 4], eax
xor eax, eax
cmp esi, eax
jle 0x700fe8bb
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 0x700fe8b4
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0x702b2ac7
call method.std.__throw_out_of_range_fmt_char_const__..._
mov word [ecx + eax*2], di
inc eax
jmp 0x700fe887
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.700a90e0
lea ecx, [ebp - 0x6e4]
push eax
push eax
mov dword [esp], ebx
call fcn.700a93f4
mov ecx, ebx
push eax
call fcn.700aa318
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.700a90e0
push eax
lea ecx, [ebp - 0x6d0]
push eax
mov dword [esp], ebx
call fcn.700a93f4
mov ecx, ebx
push eax
call fcn.700aa318
mov eax, dword [ebp - 0x71c]
cmp word [ebp - 0x748], 0
mov eax, dword [eax + 0x753bc]
mov word [ebp - 0x738], ax
je 0x700fe997
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 0x700fe9ba
mov word [ebp - 0x734], 0
mov byte [ebp - 0x720], 0
jmp 0x700fea51
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 0x700fe9a5
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.700a90e0
push esi
lea ecx, [ebp - 0x420]
push esi
mov dword [esp], ebx
call fcn.700a93f4
mov ecx, ebx
push edi
call fcn.700aa318
cmp dword [ebp - 0x728], 0x400
ja 0x700fea69
cmp dword [ebp - 0x728], 0
jne 0x700fea73
lea ecx, [ebp - 0x420]
call fcn.700aa318
inc word [ebp - 0x734]
mov eax, dword [ebp - 0x734]
cmp ax, word [ebp - 0x530]
jb 0x700fe9d8
jmp 0x700fed90
mov dword [ebp - 0x728], 0x400
cmp dword [ebp - 0x750], 0
je 0x700fea3f
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 0x700fea3f
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 0x700fed4c
mov word [ebp - 0x73c], 0
mov dword [ebp - 0x730], 0
mov dword [esp], 1
lea ecx, [ebp - 0x420]
call fcn.7015bbf8
test al, al
push edx
je 0x700fea3f
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 0x700feb2d
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 0x700fec92
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 0x700feb97
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e8], al
test esi, 2
je 0x700febb3
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e7], al
test esi, 4
je 0x700febcf
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e6], al
test esi, 8
je 0x700febeb
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e5], al
test esi, 0x10
je 0x700fec07
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e4], al
test esi, 0x20
je 0x700fec23
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov byte [ebp - 0x5e3], al
and esi, 0x40
je 0x700fec3c
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 0x700fec69
mov eax, edx
mov edx, ebx
xor ecx, ecx
cmp ecx, eax
je 0x700fec92
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 0x700fec6d
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 0x700fecc6
sub dword [ebp - 0x730], esi
inc word [ebp - 0x73c]
jmp 0x700feca9
mov esi, dword [ebp - 0x738]
cmp word [ebp - 0x73c], si
jb 0x700feadf
jmp 0x700fea3f
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 0x700fed7f
mov dword [esp], 7
lea ecx, [ebp - 0x420]
call fcn.700a905c
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 0x700fecde
inc dword [ebp - 0x730]
mov edi, dword [ebp - 0x730]
cmp dword [ebp - 0x728], edi
je 0x700fea3f
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 0x700fed2b
lea edi, [ebp - 0x5e8]
mov ecx, 7
xor eax, eax
rep stosb byte es:[edi], al
jmp 0x700fed14
movzx eax, word [ebp - 0x52c]
lea edx, [eax - 2]
cmp dx, 0x1385
ja 0x700fee3a
cmp byte [ebp - 0x720], 0
je 0x700feded
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 0x700fee3a
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 [0x702b2b80]
fmul dword [0x702b2b84]
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 0x700fee67
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 0x700fee71
mov dword [ebp - 0x728], 0
mov dword [ebp - 0x744], 0
mov dword [esp], 8
lea ecx, [ebp - 0x6d0]
call fcn.7015bbf8
test al, al
push edx
je 0x700ff42c
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.700a90e0
push eax
lea ecx, [ebp - 0x63c]
push eax
mov dword [esp], esi
call fcn.700a93f4
mov ecx, esi
push eax
call fcn.700aa318
cmp ebx, 0x32545356
je 0x700ff404
ja 0x700fef13
cmp ebx, 0x4d5553
je 0x700ff2be
cmp ebx, 0x2b4d5042
je 0x700fef3e
cmp ebx, 0x47534d
je 0x700ff274
jmp 0x700ff41c
cmp ebx, 0x4e544150
je 0x700ff1bb
cmp ebx, 0x534b5254
je 0x700feff7
xor esi, esi
cmp ebx, 0x4c4b5254
je 0x700ff1a3
jmp 0x700ff41c
cmp byte [ebp - 0x720], 0
jne 0x700ff41c
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 0x700ff41c
mov dword [esp], 8
lea ecx, [ebp - 0x63c]
call fcn.700a905c
fld qword [ebp - 0x420]
fcom qword [0x702b2b88]
fnstsw ax
push edi
sahf
jbe 0x700ff41a
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 [0x702b2b80]
fmul dword [0x702b2b84]
fstp qword [esp]
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_round_unsigned_int__double_
mov dword [esi + 0x753cc], eax
jmp 0x700ff41c
lea eax, [ebp - 0x63c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
shr ax, 8
je 0x700ff01c
mov esi, dword [ebp - 0x71c]
movzx eax, ax
mov dword [esi + 0x753e4], eax
jmp 0x700ff02c
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 0x700ff41c
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 0x700ff0c9
mov dword [esp], 0x406
lea ecx, [ebp - 0x63c]
call fcn.700a905c
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 0x700ff04e
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.7015bbf8
test al, al
push edx
je 0x700ff41c
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 0x700ff0cc
jmp 0x700ff41c
xor ebx, ebx
cmp bx, word [ebp - 0x530]
jae 0x700ff41c
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.7015bbf8
test al, al
push edx
je 0x700ff41c
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 0x700ff41c
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 0x700ff1bd
mov dword [esp], 1
lea ecx, [ebp - 0x63c]
call fcn.700a905c
mov eax, dword [ebp - 0x71c]
lea ebx, [ebp - 0x63c]
mov ecx, ebx
push esi
lea esi, [eax + 0x13cfd8]
call fcn.7015bc28
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 0x700ff41c
mov dword [esp], 6
lea ecx, [ebp - 0x63c]
call fcn.7015bbf8
test al, al
push ebx
lea eax, [ebp - 0x654]
jne 0x700ff2eb
lea edx, [ebp - 0x64e]
mov byte [eax], 0
inc eax
cmp edx, eax
jne 0x700ff2e1
jmp 0x700ff303
mov dword [esp], eax
mov dword [esp + 4], 6
lea ecx, [ebp - 0x63c]
call fcn.700a9094
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 0x700ff3f7
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 0x700ff3f7
lea ecx, [ebp - 0x624]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x700ff41c
lea eax, [ebp - 0x63c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntLEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [ebp - 0x744], eax
jmp 0x700ff41c
fstp st(0)
lea ecx, [ebp - 0x63c]
call fcn.700aa318
jmp 0x700fee7b
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 0x700ff4dc
movzx edx, cx
mov eax, dword [ebp - 0x728]
movsx eax, byte [eax + edx]
cmp eax, edx
jle 0x700ff4d6
cmp eax, ebx
jge 0x700ff4d6
shl eax, 5
mov esi, dword [ebp - 0x71c]
mov al, byte [esi + eax + 0x75420]
test al, al
je 0x700ff4d6
shl edx, 5
lea ebx, [esi + edx]
mov dl, byte [ebx + 0x75420]
test dl, dl
jne 0x700ff491
mov byte [ebx + 0x75420], al
jmp 0x700ff4d6
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 0x700ff4bf
lea edx, [esi - 0x80]
mov byte [ebp - 0x730], dl
mov edx, esi
cmp dl, 0x7f
jne 0x700ff498
dec eax
cmp al, 0xf9
ja 0x700ff4cf
movzx eax, al
sub eax, 0xffffff80
mov dword [ebx + 0x1c], eax
jmp 0x700ff4d6
mov dword [ebx + 0x1c], 0
inc ecx
jmp 0x700ff43a
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 0x700ff9bb
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 0x700ff541
mov dword [esp], 0x112
lea ecx, [ebp - 0x6e4]
call fcn.700a905c
push edi
jmp 0x700ff550
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 0x700ff665
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 0x700ff66f
lea eax, [ebp - 0x5e0]
mov dword [esp + 8], 0x702b2b26
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.7015b848
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 0x700ff66f
mov word [ebp + ebx*2 - 0x706], 0
inc ebx
cmp ebx, 9
jne 0x700ff555
movzx eax, word [ebp - 0x420]
lea ecx, [ebp - 0x608]
mov dword [esp], eax
call fcn.701f0634
xor ebx, ebx
push eax
movzx eax, word [ebp - 0x420]
cmp eax, ebx
jbe 0x700ff6fa
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.700a90e0
push ecx
lea edi, [ebp - 0x5e8]
push ecx
mov ecx, edi
mov dword [esp], esi
call fcn.700a93f4
imul ecx, ebx, 0x14
push eax
add ecx, dword [ebp - 0x608]
mov dword [esp], edi
inc ebx
call fcn.700aa4bc
mov ecx, edi
push eax
call fcn.700aa318
mov ecx, esi
call fcn.700aa318
jmp 0x700ff691
movzx ebx, word [ebp - 0x530]
test ebx, ebx
je 0x700ff72b
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 0x700ff718
jmp 0x700ff735
mov dword [ebp - 0x730], 0
mov dword [ebp - 0x720], 0
movzx eax, word [ebp - 0x534]
cmp eax, dword [ebp - 0x720]
jbe 0x700ff999
mov eax, dword [ebp - 0x720]
movzx edx, word [ebp - 0x420]
movzx ecx, byte [ebp + eax - 0x40e]
mov eax, ecx
cmp ecx, edx
jge 0x700ff98e
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 0x700ff98e
movzx ecx, bx
lea edx, [ecx + ecx]
add edx, dword [ebp - 0x730]
mov di, word [edx]
cmp di, 0xffff
jne 0x700ff7bc
mov word [edx], ax
jmp 0x700ff805
cmp di, ax
je 0x700ff805
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 0x700ff805
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 0x700ff98e
shl ebx, 6
add eax, ebx
mov dword [ebp - 0x748], ebx
mov esi, dword [eax]
cmp dword [eax + 4], esi
je 0x700ff98e
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.7015bc40
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 0x700ff98e
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 0x700ff905
inc esi
add ebx, 6
cmp esi, 8
jne 0x700ff8db
inc dword [ebp - 0x734]
jmp 0x700ff887
mov dword [esp], 4
mov ecx, dword [ebp - 0x73c]
call fcn.7015bbf8
test al, al
push edi
jne 0x700ff928
mov dword [ebp - 0x5e8], 0
jmp 0x700ff946
lea eax, [ebp - 0x5e8]
mov dword [esp + 4], 4
mov dword [esp], eax
mov ecx, dword [ebp - 0x73c]
call fcn.700a9094
push ecx
push ecx
mov dl, byte [ebp - 0x5e8]
test dl, dl
jns 0x700ff8f4
mov ax, word [ebp + esi*2 - 0x704]
mov byte [ebx], 0x3d
mov byte [ebx + 1], al
mov al, dl
and al, 0x1f
je 0x700ff975
and dl, 0x10
je 0x700ff96b
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 0x700ff8f4
inc dword [ebp - 0x720]
jmp 0x700ff73f
cmp dword [ebp - 0x730], 0
je 0x700ff9b0
mov eax, dword [ebp - 0x730]
mov dword [esp], eax
call sym.operator_delete_void_
lea ecx, [ebp - 0x608]
call fcn.701f0840
mov eax, dword [ebp - 0x528]
test al, 2
je 0x700ffa90
movzx edx, word [ebp - 0x738]
test al, 8
je 0x700ff9e1
mov esi, dword [ebp - 0x71c]
movzx edx, word [esi + 0x753bc]
cmp word [ebp - 0x596], 0x24f
ja 0x700ff9f6
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 0x700ffa90
xor esi, esi
cmp esi, dword [ebp - 0x730]
jne 0x700ffa24
inc edi
jmp 0x700ffa0c
mov dword [esp], 4
mov ecx, dword [ebp + 8]
call fcn.7015bbf8
test al, al
push edx
je 0x700ffa21
mov eax, dword [ebp + 8]
cmp word [ebp - 0x596], 0x202
mov dword [esp], eax
jbe 0x700ffa5d
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 0x700ffa70
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 0x700ffa8d
test bl, 1
je 0x700ffa89
mov dword [esp], 0x104
mov ecx, dword [ebp + 8]
call fcn.700a905c
push eax
shr ebx, 1
jmp 0x700ffa70
inc esi
jmp 0x700ffa19
mov dword [esp], 0xff
lea ecx, [ebp - 0x710]
call fcn.701f0634
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 0x700ffad9
mov esi, 0x1ac
cmp word [ebp - 0x596], 0x201
jbe 0x700ffaeb
test esi, esi
je 0x700ffaeb
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.700a90e0
push ecx
lea ebx, [ebp - 0x420]
push ecx
mov ecx, ebx
mov dword [esp], edi
call fcn.700a93f4
push edi
imul edi, dword [ebp - 0x730], 0x14
add edi, dword [ebp - 0x710]
mov dword [esp], ebx
mov ecx, edi
call fcn.700aa4bc
lea ecx, [ebp - 0x624]
push eax
mov dword [esp], edi
call fcn.701c7f84
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 0x700ffb63
add eax, 4
call fcn.70159030
mov ecx, ebx
call fcn.700aa318
lea ecx, [ebp - 0x66c]
call fcn.700aa318
mov eax, dword [ebp - 0x730]
cmp word [ebp - 0x524], ax
jbe 0x700fff7d
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 0x700fff7d
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 0x700fff7d
lea esi, [ebp - 0x624]
lea eax, [ebp - 0x420]
mov dword [esp], eax
mov ecx, esi
call fcn.70135be8
cmp word [ebp - 0x596], 0x200
push eax
mov word [ebp - 0x720], 0
jbe 0x700ffc39
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 0x700ffc62
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 0x700ffe25
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 0x700ffd16
mov dword [esp], 0x48
lea ecx, [ebp - 0x624]
call fcn.700a905c
push eax
jmp 0x700ffd25
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 0x700ffd4d
lea esi, [ebx + 0x58]
cmp al, 2
je 0x700ffd4d
lea esi, [ebx + 0x30]
cmp dword [ebp - 0x734], 3
mov al, byte [ebp - 0x5e8]
mov cl, byte [esi + 0xc]
jne 0x700ffd68
mov dl, cl
or edx, 0x10
test al, 1
jne 0x700ffd6d
mov dl, cl
and edx, 0xffffffef
mov cl, dl
and ecx, 0xfffffffe
test al, 1
je 0x700ffd7b
or edx, 1
mov cl, dl
mov dl, cl
and edx, 0xfffffffb
test al, 2
je 0x700ffd89
mov dl, cl
or edx, 4
mov cl, dl
and ecx, 0xfffffffd
test al, 4
je 0x700ffd97
or edx, 2
mov cl, dl
mov byte [esi + 0xc], cl
movzx eax, byte [ebp - 0x5e7]
cmp al, 0x10
jbe 0x700ffdaa
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 0x700ffdc9
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 0x700ffdd5
jae 0x700ffdd5
lea eax, [edi + eax*4]
cmp ecx, eax
je 0x700ffdd5
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 0x700ffe25
mov esi, dword [ebp + eax*4 - 0x5e0]
mov word [ecx + eax*4], si
mov si, word [ebp + eax*4 - 0x5de]
cmp si, 0x40
jbe 0x700ffe1c
mov esi, 0x40
mov edx, esi
mov byte [ecx + eax*4 + 2], dl
inc eax
jmp 0x700ffdfa
inc dword [ebp - 0x734]
shr dword [ebp - 0x738], 1
cmp dword [ebp - 0x734], 4
jne 0x700ffcd1
test byte [ebx + 0x3c], 1
jne 0x700ffe50
cmp byte [ebx + 0x10], 3
je 0x700ffe50
mov dword [ebx], 0x7fff
cmp word [ebp - 0x720], 0
mov word [ebx + 0x15], 0x80ff
je 0x700fff7d
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 0x700ffe9c
mov dword [esp], 0x20
lea ecx, [ebp - 0x624]
call fcn.700a905c
push ecx
jmp 0x700ffeab
lea edi, [ebp - 0x5e8]
mov ecx, 8
xor eax, eax
rep stosd dword es:[edi], eax
test byte [ebp - 0x720], 2
je 0x700ffef5
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 0x700ffedd
mov al, 0x7f
or eax, 0xffffff80
mov byte [ebx + 0x15], al
mov al, byte [ebp - 0x5e4]
test al, al
jns 0x700ffeef
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 0x700fff7d
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 0x700fff2d
mov al, byte [ebp - 0x5d9]
inc eax
mov byte [ebx + 0x1e], al
mov dl, byte [ebp - 0x5dc]
test dl, dl
jne 0x700fff3b
xor eax, eax
jmp 0x700fff69
mov eax, 1
movsx ecx, dl
lea edx, [ecx + eax]
cmp edx, 0x78
jle 0x700fff52
mov edx, 0x78
jmp 0x700fff5b
test edx, edx
jg 0x700fff5b
mov edx, 1
mov byte [ebx + eax + 0x6b], dl
inc eax
cmp eax, 0x81
jne 0x700fff43
jmp 0x700fff37
mov word [ebx + eax + 0xec], 0
add eax, 2
cmp eax, 0x100
jne 0x700fff69
lea ecx, [ebp - 0x624]
call fcn.700aa318
inc dword [ebp - 0x730]
cmp dword [ebp - 0x730], 0xff
jne 0x700ffaad
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.700a90e0
push ecx
push ecx
lea ecx, [ebp - 0x63c]
mov dword [esp], edi
call fcn.700a93f4
mov ecx, edi
push eax
call fcn.700aa318
cmp word [ebp - 0x522], si
jbe 0x70100088
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 0x70100252
cmp word [ebp - 0x522], si
jbe 0x70100252
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 0x701000f0
mov dword [esp], 0x1a
lea ecx, [ebp - 0x63c]
call fcn.700a905c
push eax
jmp 0x701000ff
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 0x70100122
or word [ebx + 0x22], 1
shr eax, 1
mov dword [ebx], eax
cmp byte [ebp - 0x61b], 1
jbe 0x70100132
or word [ebx + 0x22], 0x40
shr dword [ebx], 1
mov al, byte [ebp - 0x619]
cmp al, 1
jne 0x70100143
or word [ebx + 0x22], 2
jmp 0x7010014c
cmp al, 2
jne 0x7010014c
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 0x70100180
or word [ebx + 0x22], 0x100
jmp 0x70100188
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 0x701001d3
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 0x701001e3
or word [ebx + 0x22], 0x4000
test al, 8
je 0x70100252
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 0x7010024a
movzx edx, word [eax + ebp - 0x704]
mov edi, dword [ebp - 0x71c]
mov edx, dword [edi + edx*4 + 0xdbd1c]
test edx, edx
je 0x7010024a
mov byte [edx + 0xe], 0
add eax, 2
cmp eax, 0x10
jne 0x7010021d
lea ecx, [ebp - 0x63c]
inc esi
call fcn.700aa318
add ebx, 0x68
cmp esi, 0x100
jne 0x700fffc8
mov word [ebp - 0x730], 0
mov eax, dword [ebp - 0x730]
cmp ax, word [ebp - 0x524]
jae 0x701004d4
movzx ebx, ax
imul ebx, ebx, 0x14
mov ecx, dword [ebp - 0x710]
add ecx, ebx
call fcn.7015bc40
test eax, eax
je 0x701004c8
add ebx, dword [ebp - 0x710]
lea eax, [ebp - 0x420]
mov ecx, ebx
mov dword [ebx + 8], 0
mov dword [esp], eax
call fcn.70135be8
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 0x70100374
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 0x70100311
mov esi, dword [ebp - 0x624]
mov eax, dword [ebp - 0x620]
sub eax, esi
test eax, eax
jle 0x7010034d
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._memmove
jmp 0x70100351
test esi, esi
je 0x70100359
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.7015bbf8
test al, al
push ecx
je 0x701003a9
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.700a9094
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 0x701003c7
cmp byte [eax + 0x22], 0
je 0x701003d7
lea ecx, [ebp - 0x624]
call method.std::_Vector_base_OpenMPT::MT2Group__std::allocator_OpenMPT::MT2Group___._Vector_base____clone_.isra.0_
jmp 0x701004c8
mov dword [eax + 4], 0x20
xor edx, edx
mov word [eax + edx + 0xec], 0
add edx, 2
cmp edx, 0x100
jne 0x701003e0
xor ebx, ebx
movzx edx, byte [ebp + ebx - 0x41e]
movzx ecx, word [ebp - 0x420]
cmp edx, ecx
jge 0x701004b9
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 0x701004b9
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 0x701004ab
mov byte [eax + 0xe], 0
test dword [ebp + edx*4 - 0x5e8], ecx
je 0x701004b9
mov byte [eax + ebx + 0x78], 0x3d
inc ebx
cmp ebx, 0x60
jne 0x701003f7
jmp 0x701003c7
inc word [ebp - 0x730]
jmp 0x70100276
test byte [ebp + 0xc], 2
je 0x7010077d
xor edi, edi
mov eax, dword [ebp - 0x71c]
cmp word [eax + 0x753be], di
jbe 0x7010077d
movzx eax, di
inc eax
imul ebx, eax, 0x68
mov dword [ebp - 0x730], eax
mov eax, dword [ebp - 0x71c]
fld dword [0x702b2b90]
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 [0x702b2b94]
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 0x701005c8
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 0x70100777
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.700a905c
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.7011e924
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.701f96d4
push esi
lea ecx, [ebp - 0x654]
mov dword [esp], ebx
lea esi, [ebp - 0x624]
call fcn.701f8458
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.7015b07c
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 0x70100777
inc edi
jmp 0x701004e0
lea ecx, [ebp - 0x710]
call fcn.701f0840
cmp dword [ebp - 0x728], 0
je 0x7010079f
mov eax, dword [ebp - 0x728]
mov dword [esp], eax
call sym.operator_delete_void_
lea ecx, [ebp - 0x6d0]
call fcn.700aa318
lea ecx, [ebp - 0x6e4]
call fcn.700aa318
jmp 0x701008fc
mov al, byte [ebp - 0x73d]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8