Function at 0x700ef950
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea esi, [ebp - 0x354]
sub esp, 0x4dc
mov dword [ebp - 0x49c], ecx
mov ebx, dword [ebp + 8]
mov ecx, ebx
mov dword [ebx + 8], 0
mov dword [esp], esi
mov dword [esp + 4], 0xec
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
cmp edx, 0xec
push eax
push eax
jne 0x700ef9a8
mov ecx, ebx
mov dword [esp], 0xec
call fcn.700a905c
mov ecx, esi
push edi
call method.OpenMPT::GT2FileHeader.Validate___const
test al, al
jne 0x700ef9b4
mov byte [ebp - 0x4a1], 0
jmp 0x700f1bc9
mov eax, dword [ebp - 0x350]
bswap eax
cmp eax, 0xec
jae 0x700ef9c8
mov eax, 0xec
sub eax, 0xd8
mov dword [esp + 4], 0
mov dword [esp], eax
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
mov ecx, ebx
mov dword [esp], eax
call fcn.7015bbf8
mov byte [ebp - 0x4a1], al
test al, al
push esi
je 0x700ef9a8
cmp dword [ebp + 0xc], 0x40
je 0x700f1bc9
mov ecx, dword [ebp - 0x49c]
mov dword [esp], 0x1000000
call method.OpenMPT::CSoundFile.InitializeGlobals_OpenMPT::MODTYPE_
lea esi, [ebp - 0x498]
push ecx
mov ecx, dword [ebp - 0x49c]
call method.OpenMPT::CSoundFile.InitializeChannels__
mov eax, dword [ebp - 0x49c]
or dword [eax + 0x753d0], 0x1008000
mov dword [esp], esi
mov dword [esp + 4], 0x20
call method.OpenMPT::CSoundFile.GetDefaultPlaybackBehaviour_OpenMPT::MODTYPE_
mov eax, dword [ebp - 0x49c]
mov ecx, 4
lea edi, [eax + 0x106488]
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x351], 5
mov eax, dword [eax + 0x10648c]
jbe 0x700efa69
or eax, 0x2000000
jmp 0x700efa6e
and eax, 0xfdffffff
mov edi, dword [ebp - 0x49c]
mov ecx, 7
or dword [edi + 0x106494], 0x40000
mov dword [edi + 0x10648c], eax
xor eax, eax
lea edi, [ebp - 0x3dc]
rep stosd dword es:[edi], eax
movzx eax, byte [ebp - 0x28c]
cmp al, 0x1f
jbe 0x700efaa5
mov eax, 0x1f
jmp 0x700efaae
test al, al
jne 0x700efaae
mov eax, 1
mov dword [ebp - 0x3e0], eax
movzx eax, byte [ebp - 0x28b]
cmp al, 0xc
jbe 0x700efac6
mov eax, 0xc
jmp 0x700efacf
test al, al
jne 0x700efacf
mov eax, 1
mov dword [ebp - 0x3e4], eax
mov edi, dword [ebp - 0x49c]
movzx eax, word [ebp - 0x28a]
xchg al, ah
movzx eax, ax
mov dword [ebp - 0x3e8], eax
mov eax, dword [ebp - 0x49c]
lea esi, [ebp - 0x3e8]
mov eax, dword [eax + 0x13d074]
cmp eax, dword [edi + 0x13d078]
je 0x700efb21
mov edi, eax
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x49c]
add eax, 0x28
mov dword [edi + 0x13d074], eax
jmp 0x700efb3b
mov edi, dword [ebp - 0x49c]
mov dword [esp + 4], esi
mov dword [esp], eax
lea ecx, [edi + 0x13d070]
call method.void_std::vector_OpenMPT::FileHistory__std::allocator_OpenMPT::FileHistory___::_M_realloc_insert_OpenMPT.FileHistory_const____gnu_cxx::__normal_iterator_OpenMPT::FileHistory__std::vector_OpenMPT::FileHistory__std::allocator_OpenMPT::FileHistory__
push edx
push edx
mov eax, dword [ebp - 0x49c]
lea esi, [ebp - 0x268]
mov ecx, esi
mov dword [ebp - 0x3fc], 0x18
mov word [eax + 0x753bc], 0x20
lea eax, [ebp - 0x288]
mov dword [ebp - 0x400], eax
lea eax, [ebp - 0x400]
mov dword [esp], eax
mov byte [ebp - 0x3f8], 3
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
lea edi, [ebp - 0x14c]
mov ecx, edi
mov dword [ebp - 0x418], 1
push eax
lea eax, [ebp - 0x418]
mov dword [esp + 4], esi
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
push eax
push eax
lea eax, [ebp - 0x3bc]
mov dword [esp + 8], 0x3f
mov dword [esp + 4], edi
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt11encode_utf8INSt7__cxx1112basic_stringIcNS0_20encoding_char_traitsILNS0_15common_encodingE0ES5_EESaIc
mov ecx, edi
lea edi, [ebp - 0x3bc]
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 - 0x49c]
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__
cmp byte [ebp - 0x351], 5
ja 0x700efc19
mov dword [esp], str.Graoumf_Tracker_v
jmp 0x700efc20
mov dword [esp], str.Graoumf_Tracker_2_v
lea ecx, [ebp - 0x14c]
call fcn.701f940c
mov ecx, esi
lea esi, [ebp - 0x268]
push eax
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call fcn.701f8338
lea ecx, [ebp - 0x14c]
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 eax, [ebp - 0x351]
mov dword [esp], esi
mov dword [esp + 4], eax
lea ecx, [ebp - 0x14c]
call fcn.7015a6c4
push eax
push eax
mov eax, dword [ebp - 0x49c]
lea ecx, [eax + 0x13cff0]
lea eax, [ebp - 0x14c]
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 - 0x14c]
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
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 - 0x14c]
mov dword [esp], 0x702b0926
call fcn.701f940c
mov eax, dword [ebp - 0x49c]
lea ecx, [eax + 0x13d008]
lea eax, [ebp - 0x14c]
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 - 0x14c]
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 - 0x49c]
lea ecx, [ebp - 0x14c]
mov dword [eax + 0x13d068], 0x1a
lea eax, [ebp - 0x34c]
mov dword [esp], esi
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], 0x20
mov byte [ebp - 0x260], 3
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
mov eax, dword [ebp - 0x49c]
push esi
lea ecx, [eax + 0x13cfa8]
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea ecx, [ebp - 0x14c]
push edi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov eax, dword [ebp - 0x49c]
mov edi, dword [ebp - 0x49c]
movzx ecx, word [eax + 0x753bc]
mov dword [eax + 0x753e4], 0x100
mov eax, 0x180
add ecx, 3
cdq
idiv ecx
mov dword [edi + 0x753c8], eax
cmp byte [ebp - 0x351], 5
ja 0x700efea4
movzx eax, word [ebp - 0x270]
xchg al, ah
test ax, ax
jne 0x700efd7e
mov eax, 1
mov edi, dword [ebp - 0x49c]
movzx eax, ax
mov dword [edi + 0x753c4], eax
movzx eax, word [ebp - 0x26e]
xchg al, ah
test ax, ax
jne 0x700efda0
mov eax, 1
movzx eax, ax
imul eax, eax, 0x2710
mov edi, dword [ebp - 0x49c]
xor edx, edx
mov dword [edi + 0x753cc], eax
mov dword [esp + 8], 0xfff
movzx eax, word [ebp - 0x26c]
xchg al, ah
movzx eax, ax
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0xc], 0
add eax, 0x7ff
adc edx, 0
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.__udivdi3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
cmp eax, 0x100
jbe 0x700efe06
mov eax, 0x100
mov edi, dword [ebp - 0x49c]
mov dword [edi + 0x753c8], eax
movzx edi, word [ebp - 0x26a]
rol di, 8
cmp di, 0x7f
jbe 0x700efe28
mov edi, 0x7f
xor esi, esi
cmp di, si
jbe 0x700efea4
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
xor edx, edx
movzx eax, ax
shld edx, eax, 8
shl eax, 8
mov dword [esp + 8], 0xfff
add eax, 0x7ff
mov dword [esp + 0xc], 0
adc edx, 0
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.__udivdi3
mov dword [esp + 4], edx
mov dword [esp], eax
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
mov edx, esi
shl edx, 5
mov ecx, dword [ebp - 0x49c]
cmp ax, 0x100
mov word [ecx + edx + 0x7541c], ax
mov ecx, eax
jbe 0x700efe93
mov ecx, 0x100
mov eax, dword [ebp - 0x49c]
inc esi
mov word [eax + edx + 0x7541c], cx
jmp 0x700efe2a
mov eax, dword [ebp - 0x350]
mov ecx, ebx
bswap eax
mov dword [esp], eax
call fcn.700a9020
lea ecx, [ebp - 0x444]
push eax
mov dword [esp], ebx
lea ebx, [ebp - 0x474]
call fcn.700a9720
push eax
mov dword [esp + 0xc], 0x454e4443
mov dword [esp + 8], 1
mov dword [esp + 4], ecx
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader15ReadChunksUntilIN7OpenMPT8GT2ChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFile
mov dword [esp + 4], 0x50415453
mov dword [esp], ebx
lea ecx, [ebp - 0x14c]
call fcn.7015c230
push eax
lea ecx, [ebp - 0x14c]
push eax
mov dword [esp], 2
call fcn.7015bbf8
test al, al
push edi
je 0x700eff72
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
lea edx, [eax - 1]
cmp dx, 0x7e
ja 0x700eff72
mov edi, dword [ebp - 0x49c]
lea ecx, [ebp - 0x14c]
mov word [edi + 0x753bc], ax
call fcn.700aa254
mov dword [esp + 4], 0x534f4e47
mov dword [esp], ebx
lea ecx, [ebp - 0x14c]
call fcn.7015c230
push esi
lea ecx, [ebp - 0x14c]
push esi
mov dword [esp], 2
call fcn.7015bbf8
jmp 0x700eff89
lea ecx, [ebp - 0x14c]
call fcn.700aa254
mov byte [ebp - 0x4a1], 0
jmp 0x700f1a8d
mov byte [ebp - 0x4a1], al
push ebx
test al, al
je 0x700f0077
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov esi, eax
mov eax, dword [ebp - 0x49c]
movzx ebx, byte [eax + 0x76418]
imul ebx, ebx, 0x2c
add ebx, dword [eax + 0x76408]
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov word [ebx + 0x28], ax
lea ecx, [ebp - 0x14c]
call fcn.7015bc28
mov edx, eax
mov dword [esp + 0x10], 0xffff
shr edx, 1
mov dword [esp + 0xc], 0xffff
cmp eax, 0x1ffff
jbe 0x700efffb
mov edx, 0xffff
movzx eax, dx
cmp dx, si
jbe 0x700f0006
movzx eax, si
mov dword [esp + 8], eax
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x49c]
mov edi, dword [ebp - 0x49c]
movzx eax, byte [eax + 0x76418]
imul eax, eax, 0x2c
add eax, dword [edi + 0x76408]
mov dword [esp], eax
call sym.__ZN7OpenMPT17ReadOrderFromFileIN3mpt14mpt_libopenmpt6packedItLNS2_6endianE305419896EtEEEEbRNS_11ModSequenceERNS_6detail10File
lea ecx, [ebp - 0x14c]
call fcn.700aa254
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x58434f4d
mov dword [esp], eax
lea ecx, [ebp - 0x14c]
call fcn.7015c230
push ecx
lea ebx, [ebp - 0x14c]
push ecx
mov ecx, ebx
mov dword [esp], 3
call fcn.7015bbf8
jmp 0x700f0087
lea ecx, [ebp - 0x14c]
call fcn.700aa254
jmp 0x700f1a8d
mov cl, al
mov eax, 0xa0
push edx
test cl, cl
lea edx, [ebp - 0x32c]
je 0x700f00d0
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
movzx eax, ax
mov edi, dword [ebp - 0x49c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x14c]
mov dword [esp + 8], 4
lea ecx, [edi + 0x13cfd8]
mov dword [esp], eax
call sym.__ZN7OpenMPT11SongMessage4ReadERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataENS5_24FileCursorFile
jmp 0x700f00fb
test eax, eax
je 0x700f00db
mov ecx, eax
dec eax
cmp byte [edx + eax], 0x20
je 0x700f00cc
mov eax, ecx
mov edi, dword [ebp - 0x49c]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], edx
lea ecx, [edi + 0x13cfd8]
call method.OpenMPT::SongMessage.Read_std::byte_const__unsigned_int__OpenMPT::SongMessage::LineEnding_
sub esp, 0xc
lea ecx, [ebp - 0x14c]
call fcn.700aa254
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x54434e31
mov dword [esp], eax
lea ecx, [ebp - 0x14c]
call fcn.7015c230
push eax
lea ebx, [ebp - 0x14c]
push eax
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
test al, al
je 0x700f0179
lea ecx, [ebp - 0x14c]
call fcn.700aa254
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x54434e32
mov dword [esp], eax
lea ecx, [ebp - 0x14c]
call fcn.7015c230
push eax
lea ecx, [ebp - 0x14c]
push eax
mov dword [esp], 0xc
call fcn.7015bbf8
jmp 0x700f01fa
mov dword [esp], 0xa58
mov ecx, ebx
call fcn.700a9020
test al, al
push edi
je 0x700f0139
lea eax, [ebp - 0x268]
mov dword [esp + 4], 4
mov dword [esp], eax
lea ecx, [ebp - 0x14c]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push esi
xor ecx, ecx
push esi
cmp edx, 4
jne 0x700f01c8
mov dword [esp], 4
mov ecx, ebx
call fcn.700a905c
mov ecx, dword [ebp - 0x268]
push ebx
bswap ecx
mov eax, dword [ebp - 0x49c]
lea edx, [eax + 0x75418]
xor eax, eax
mov esi, dword [edx]
mov ebx, esi
and bh, 0xfb
bt ecx, eax
jb 0x700f01ea
or esi, 0x400
mov ebx, esi
inc eax
mov dword [edx], ebx
add edx, 0x20
cmp eax, 0x20
jne 0x700f01d6
jmp 0x700f0139
test al, al
push ecx
je 0x700f0393
mov dword [esp], 0xc
lea ecx, [ebp - 0x14c]
call fcn.7015bbf8
test al, al
push edx
lea eax, [ebp - 0x268]
jne 0x700f0234
xor ecx, ecx
lea edx, [ebp - 0x25c]
mov word [eax], cx
add eax, 2
cmp eax, edx
jne 0x700f0228
jmp 0x700f024c
mov dword [esp], eax
mov dword [esp + 4], 0xc
lea ecx, [ebp - 0x14c]
call fcn.700a9094
push eax
push eax
movzx eax, word [ebp - 0x264]
mov edx, 0x2710
xchg al, ah
movzx eax, ax
mul edx
add eax, 0x8000
adc edx, 0
shrd eax, edx, 0x10
shr edx, 0x10
mov dword [esp], eax
mov dword [esp + 4], edx
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
movzx ecx, word [ebp - 0x266]
xchg cl, ch
cmp cx, 0x3e7
jbe 0x700f0291
mov ecx, 0x3e7
jmp 0x700f029c
cmp cx, 0x20
jae 0x700f029c
mov ecx, 0x20
movzx ecx, cx
imul ecx, ecx, 0x2710
xor edx, edx
mov ebx, 0x2710
div ebx
mov eax, dword [ebp - 0x49c]
add ecx, edx
mov dword [eax + 0x753cc], ecx
movzx eax, word [ebp - 0x262]
xchg al, ah
cmp ax, 0xff
jbe 0x700f02d2
mov eax, 0xff
jmp 0x700f02dc
test ax, ax
jne 0x700f02dc
mov eax, 1
mov edi, dword [ebp - 0x49c]
movzx eax, ax
mov dword [edi + 0x753c4], eax
movzx eax, word [ebp - 0x25e]
xchg al, ah
cmp ax, 0x10
jbe 0x700f0301
mov eax, 0x10
jmp 0x700f030b
test ax, ax
jne 0x700f030b
mov eax, 1
movzx ebx, ax
mov eax, 0x10
mov edi, dword [ebp - 0x49c]
cdq
movzx ecx, word [ebp - 0x260]
idiv ebx
xchg cl, ch
cmp cx, 0x10
mov dword [edi + 0x753d8], eax
jbe 0x700f0338
mov ecx, 0x10
jmp 0x700f0342
test cx, cx
jne 0x700f0342
mov ecx, 1
movzx ecx, cx
imul ecx, eax
mov eax, dword [ebp - 0x49c]
cmp word [ebp - 0x268], 0
mov dword [eax + 0x753dc], ecx
je 0x700f0393
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov edi, dword [ebp - 0x49c]
mov edx, dword [edi + 0x753d0]
mov ecx, edx
and ecx, 0xffffffef
test ax, ax
jne 0x700f0387
or edx, 0x10
mov ecx, edx
mov eax, dword [ebp - 0x49c]
mov dword [eax + 0x753d0], ecx
lea ebx, [ebp - 0x14c]
mov ecx, ebx
call fcn.700aa254
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x54564f4c
mov dword [esp], eax
mov ecx, ebx
call fcn.7015c230
push edi
mov ecx, ebx
push edi
mov dword [esp], 2
call fcn.7015bbf8
test al, al
push esi
je 0x700f0423
mov eax, dword [ebp - 0x49c]
mov si, word [eax + 0x753bc]
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
cmp si, ax
jbe 0x700f03e9
mov esi, eax
xor edi, edi
cmp si, di
jbe 0x700f0423
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov edx, edi
shl edx, 5
cmp ax, 0x1000
jbe 0x700f040e
mov eax, 0x1000
mov ecx, dword [ebp - 0x49c]
inc edi
shr ax, 6
mov word [ecx + edx + 0x7541e], ax
jmp 0x700f03eb
mov ecx, ebx
call fcn.700aa254
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x4d495850
mov dword [esp], eax
lea ecx, [ebp - 0x268]
call fcn.7015c230
push ecx
push ecx
lea ecx, [ebp - 0x268]
mov dword [esp], 0x38
call fcn.7015bbf8
test al, al
push edx
je 0x700f0627
lea ebx, [ebp - 0x14c]
mov dword [esp + 4], 0x38
mov dword [esp], ebx
lea ecx, [ebp - 0x268]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 0x38
push eax
jne 0x700f049b
mov dword [esp], 0x38
lea ecx, [ebp - 0x268]
call fcn.700a905c
push edi
jmp 0x700f04a6
mov ecx, 0xe
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
cmp word [ebp - 0x12a], 0x400
jne 0x700f0627
cmp word [ebp - 0x11c], 0x101
jne 0x700f0627
movzx eax, word [ebp - 0x124]
xchg al, ah
cmp ax, 0x4000
jbe 0x700f04d8
mov eax, 0x4000
movzx eax, ax
xor edx, edx
shld edx, eax, 8
shl eax, 8
add eax, 0x800
adc edx, 0
xor ebx, ebx
shrd eax, edx, 0xc
shr edx, 0xc
mov dword [esp], eax
mov dword [esp + 4], edx
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
mov edi, dword [ebp - 0x49c]
mov dword [edi + 0x753c8], eax
movzx eax, word [ebp - 0x126]
xchg al, ah
cmp bx, ax
jae 0x700f0627
lea eax, [ebp - 0x3bc]
mov dword [esp + 4], 8
mov dword [esp], eax
lea ecx, [ebp - 0x268]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push esi
cmp edx, 8
push esi
jne 0x700f0557
mov dword [esp], 8
lea ecx, [ebp - 0x268]
call fcn.700a905c
push ecx
jmp 0x700f056b
mov dword [ebp - 0x3bc], 0
mov dword [ebp - 0x3b8], 0
cmp byte [ebp - 0x3bc], 0
jne 0x700f0621
movzx eax, word [ebp - 0x3ba]
mov esi, dword [ebp - 0x49c]
xchg al, ah
cmp word [esi + 0x753bc], ax
jbe 0x700f0621
movzx eax, ax
shl eax, 5
xor edx, edx
mov dword [esp + 8], 0xfff
mov dword [esp + 0xc], 0
lea esi, [esi + eax + 0x75418]
movzx eax, word [ebp - 0x3b6]
xchg al, ah
movzx eax, ax
shld edx, eax, 8
shl eax, 8
add eax, 0x7ff
adc edx, 0
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.__udivdi3
mov dword [esp + 4], edx
mov dword [esp], eax
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
xor edx, edx
mov word [esi + 4], ax
movzx eax, word [ebp - 0x3b8]
xchg al, ah
movzx eax, ax
shld edx, eax, 6
shl eax, 6
add eax, 0x800
adc edx, 0
shrd eax, edx, 0xc
shr edx, 0xc
mov dword [esp], eax
mov dword [esp + 4], edx
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
movzx eax, al
mov word [esi + 6], ax
inc ebx
jmp 0x700f050d
lea ecx, [ebp - 0x268]
call fcn.700aa254
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x53414d32
mov dword [esp], eax
lea ecx, [ebp - 0x450]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8GT2ChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
mov eax, dword [ebp - 0x44c]
push edx
push edx
mov dword [ebp - 0x4a0], eax
mov edi, dword [ebp - 0x450]
cmp edi, dword [ebp - 0x4a0]
je 0x700f0b25
lea eax, [ebp - 0x14c]
mov dword [esp + 4], 0x4e
mov dword [esp], eax
mov ecx, edi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 0x4e
push eax
jne 0x700f086e
mov dword [esp], 0x4e
mov ecx, edi
call fcn.700a905c
push eax
movzx eax, word [ebp - 0x14c]
xchg al, ah
lea edx, [eax - 1]
cmp dx, 0xf9e
ja 0x700f086e
movzx edx, word [ebp - 0x11c]
xchg dl, dh
cmp dx, 1
ja 0x700f086e
movzx edx, word [ebp - 0x12e]
xchg dl, dh
cmp dx, 1
ja 0x700f086e
mov esi, dword [ebp - 0x49c]
cmp word [esi + 0x753be], ax
jae 0x700f06f9
mov esi, dword [ebp - 0x49c]
mov word [esi + 0x753be], ax
movzx eax, ax
imul eax, eax, 0x68
mov esi, dword [ebp - 0x49c]
mov dword [esp], 0x20
lea ebx, [esi + eax + 0x7641c]
mov ecx, ebx
call method.OpenMPT::ModSample.Initialize_OpenMPT::MODTYPE_
mov ecx, ebx
push eax
call method.OpenMPT::ModSample.Set16BitCuePoints__
movzx eax, word [ebp - 0x124]
xchg al, ah
shr ax, 2
mov word [ebx + 0x20], ax
movzx eax, word [ebp - 0x126]
xchg al, ah
test ax, ax
jle 0x700f0783
cwde
cdq
shld edx, eax, 8
shl eax, 8
or word [ebx + 0x22], 0x20
add eax, 0x7ff
mov dword [esp + 8], 0xfff
adc edx, 0
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.__udivdi3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x112]
mov edx, dword [ebp - 0x10a]
bswap eax
mov dword [ebx], eax
mov eax, dword [ebp - 0x10e]
bswap eax
movzx ecx, word [ebp - 0x120]
bswap edx
xchg cl, ch
mov dword [ebx + 4], eax
add eax, edx
test cx, cx
mov dword [ebx + 8], eax
mov ax, word [ebx + 0x22]
je 0x700f0876
mov edx, eax
or eax, 6
or edx, 2
and cl, 2
movzx edx, dx
movzx eax, ax
je 0x700f087e
mov word [ebx + 0x22], ax
mov eax, dword [ebp - 0x116]
bswap eax
add eax, eax
mov dword [ebx + 0x18], eax
movzx eax, word [ebp - 0x122]
xchg al, ah
test ax, ax
jne 0x700f0888
movzx eax, word [ebp - 0x122]
xchg al, ah
shl eax, 4
mov byte [ebx + 0x25], al
lea eax, [ebp - 0x14a]
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x268]
mov dword [esp], eax
lea ecx, [ebp - 0x418]
mov dword [ebp - 0x264], 0x1c
mov byte [ebp - 0x260], 3
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
movzx eax, word [ebp - 0x14c]
xchg al, ah
movzx eax, ax
shl eax, 5
mov esi, dword [ebp - 0x49c]
push ecx
lea ecx, [esi + eax + 0xe7080]
lea esi, [ebp - 0x418]
mov dword [esp], esi
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, esi
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
test byte [ebp + 0xc], 2
jne 0x700f08ac
add edi, 0x14
jmp 0x700f0662
mov edx, eax
and edx, 0xfffd
mov eax, edx
and eax, 0xfffffffb
jmp 0x700f07d2
fld dword [0x702b09d8]
mov word [ebp - 0x4b0], ax
mov ecx, ebx
fidivr word [ebp - 0x4b0]
fstp qword [esp]
call method.OpenMPT::ModSample.Transpose_double_
push eax
push eax
jmp 0x700f07f5
mov eax, dword [ebp - 0x102]
mov ecx, edi
bswap eax
sub eax, 8
mov dword [esp], eax
call fcn.700a9020
test al, al
push edx
je 0x700f086e
cmp word [ebp - 0x12e], 0
jne 0x700f092c
cmp word [ebp - 0x12a], 0
sete cl
xor eax, eax
mov byte [ebp - 0x266], cl
cmp word [ebp - 0x128], 0x100
setne al
xor edx, edx
inc eax
cmp word [ebp - 0x12c], 0x800
setne dl
mov dword [esp + 4], edi
mov dword [esp], ebx
lea edx, [edx*8 + 8]
lea ecx, [ebp - 0x268]
mov byte [ebp - 0x268], dl
mov byte [ebp - 0x267], al
mov byte [ebp - 0x265], 0
call sym.__ZNK7OpenMPT8SampleIO10ReadSampleERNS_9ModSampleERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataEN
push eax
push eax
lea eax, [ebp - 0x428]
mov dword [esp], edi
mov dword [ebp - 0x430], eax
lea ecx, [ebp - 0x3bc]
movzx eax, word [ebp - 0x11a]
xchg al, ah
movzx eax, ax
mov dword [esp + 4], eax
mov dword [ebp - 0x42c], 0
mov byte [ebp - 0x428], 0
call fcn.700a8b9c
lea ecx, [ebp - 0x3bc]
push esi
push esi
call fcn.7015b9c0
mov dword [ebp - 0x400], eax
mov eax, dword [ebp - 0x3bc]
mov dword [ebp - 0x3fc], eax
lea esi, [ebp - 0x268]
lea eax, [ebp - 0x400]
mov ecx, esi
mov dword [esp], eax
mov byte [ebp - 0x3f8], 2
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push edx
lea edx, [ebp - 0x430]
mov ecx, edx
mov dword [esp], esi
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____
add ebx, 0x2b
push ecx
mov ecx, esi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea ecx, [ebp - 0x3b4]
call fcn.701c704c
lea edx, [ebp - 0x430]
mov dword [esp], edx
mov ecx, esi
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x264], 0x16
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_
cmp word [ebp - 0x12e], 0x100
push ebx
jne 0x700f0b15
jmp 0x700f0a0e
mov dword [esp], 0x702b092a
mov ecx, esi
call fcn.701f940c
lea ebx, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x418]
mov dword [esp], ebx
call fcn.701f8338
mov ecx, ebx
lea esi, [ebp - 0x3bc]
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 eax, [ebp - 0x430]
mov ecx, esi
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_
push eax
lea eax, [ebp - 0x45c]
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, ebx
mov dword [ebp - 0x45c], 0
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 - 0x400]
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__
lea eax, [ebp - 0x14c]
lea esi, [ebp - 0x400]
mov dword [esp + 4], eax
lea eax, [ebp - 0x418]
mov dword [esp + 8], esi
mov dword [esp], eax
mov ecx, ebx
call fcn.7015a83c
sub esp, 0xc
mov ecx, dword [ebp - 0x49c]
mov dword [esp + 4], ebx
mov dword [esp], 2
call sym.__ZNK7OpenMPT10CSoundFile8AddToLogENS_8LogLevelERKNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS5_
mov ecx, ebx
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 - 0x400]
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 - 0x418]
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 0x700f0b15
lea ecx, [ebp - 0x430]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x700f086e
lea ecx, [ebp - 0x450]
call fcn.701f0798
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x53414d50
mov dword [esp], eax
lea ecx, [ebp - 0x3bc]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8GT2ChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
mov eax, dword [ebp - 0x3b8]
push edi
push edi
mov dword [ebp - 0x4a0], eax
mov edi, dword [ebp - 0x3bc]
cmp edi, dword [ebp - 0x4a0]
je 0x700f0dfe
lea eax, [ebp - 0x14c]
mov dword [esp + 4], 0x38
mov dword [esp], eax
mov ecx, edi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push esi
cmp edx, 0x38
push esi
jne 0x700f0d77
mov dword [esp], 0x38
mov ecx, edi
call fcn.700a905c
movzx eax, word [ebp - 0x14c]
xchg al, ah
push ebx
lea edx, [eax - 1]
cmp dx, 0xf9e
ja 0x700f0d77
cmp word [ebp - 0x116], 0
jne 0x700f0d77
mov esi, dword [ebp - 0x49c]
cmp word [esi + 0x753be], ax
jae 0x700f0bdf
mov esi, dword [ebp - 0x49c]
mov word [esi + 0x753be], ax
movzx eax, ax
imul eax, eax, 0x68
mov esi, dword [ebp - 0x49c]
mov dword [esp], 0x20
lea ebx, [esi + eax + 0x7641c]
mov ecx, ebx
call method.OpenMPT::ModSample.Initialize_OpenMPT::MODTYPE_
push ecx
mov ecx, ebx
call method.OpenMPT::ModSample.Set16BitCuePoints__
movzx eax, word [ebp - 0x11a]
xchg al, ah
cwde
shr eax, 2
mov word [ebx + 0x20], ax
movzx eax, word [ebp - 0x12c]
xchg al, ah
test ax, ax
jle 0x700f0c69
cwde
cdq
shld edx, eax, 8
shl eax, 8
or word [ebx + 0x22], 0x20
add eax, 0x7ff
mov dword [esp + 8], 0xfff
adc edx, 0
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.__udivdi3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x122]
mov ecx, dword [ebp - 0x11e]
bswap eax
bswap ecx
mov edx, dword [ebp - 0x126]
mov dword [ebx + 4], eax
bswap edx
lea esi, [eax + ecx]
mov dword [ebx], edx
cmp word [ebp - 0x12a], 0x1000
mov dword [ebx + 8], esi
jne 0x700f0ca7
shr edx, 1
shr esi, 1
mov dword [ebx], edx
mov edx, eax
mov dword [ebx + 8], esi
shr edx, 1
mov dword [ebx + 4], edx
mov dx, word [ebx + 0x22]
cmp ecx, 2
ja 0x700f0d7f
mov ecx, edx
and ecx, 0xfffd
test eax, eax
jne 0x700f0d7f
mov eax, ecx
and eax, 0xfffffffb
test byte [ebp - 0x12d], 2
je 0x700f0cd7
mov eax, ecx
or eax, 4
mov word [ebx + 0x22], ax
movzx eax, word [ebp - 0x128]
xchg al, ah
movzx eax, ax
add eax, eax
mov dword [ebx + 0x18], eax
movzx eax, word [ebp - 0x118]
xchg al, ah
test ax, ax
jne 0x700f0d8c
movzx eax, word [ebp - 0x118]
xchg al, ah
shl eax, 4
mov byte [ebx + 0x25], al
lea eax, [ebp - 0x14a]
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x268]
mov dword [esp], eax
lea ecx, [ebp - 0x400]
mov dword [ebp - 0x264], 0x1c
mov byte [ebp - 0x260], 3
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push eax
mov esi, dword [ebp - 0x49c]
movzx eax, word [ebp - 0x14c]
xchg al, ah
movzx eax, ax
shl eax, 5
lea ecx, [esi + eax + 0xe7080]
lea esi, [ebp - 0x400]
mov dword [esp], esi
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, esi
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
test byte [ebp + 0xc], 2
jne 0x700f0db0
add edi, 0x14
jmp 0x700f0b60
mov eax, edx
or eax, 2
movzx ecx, ax
jmp 0x700f0cc4
fld dword [0x702b09d8]
mov word [ebp - 0x4b0], ax
mov ecx, ebx
fidivr word [ebp - 0x4b0]
fstp qword [esp]
call method.OpenMPT::ModSample.Transpose_double_
push edx
push edx
jmp 0x700f0cfe
movzx eax, byte [ebp - 0x12d]
xor edx, edx
and eax, 1
inc eax
mov dword [esp + 4], edi
cmp word [ebp - 0x12a], 0x800
setne dl
mov dword [esp], ebx
lea ecx, [ebp - 0x268]
lea edx, [edx*8 + 8]
mov byte [ebp - 0x267], al
mov byte [ebp - 0x268], dl
mov word [ebp - 0x266], 1
call sym.__ZNK7OpenMPT8SampleIO10ReadSampleERNS_9ModSampleERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataEN
push eax
push eax
jmp 0x700f0d77
lea ecx, [ebp - 0x3bc]
lea ebx, [ebp - 0x474]
call fcn.701f0798
mov dword [esp + 4], 0x56454e56
mov dword [esp], ebx
lea ecx, [ebp - 0x468]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8GT2ChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
push eax
lea ecx, [ebp - 0x45c]
push eax
mov dword [esp + 4], 0x54454e56
mov dword [esp], ebx
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8GT2ChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
push eax
lea ecx, [ebp - 0x450]
push eax
mov dword [esp + 4], 0x50454e56
mov dword [esp], ebx
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8GT2ChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
push edi
lea ecx, [ebp - 0x400]
push edi
mov dword [esp + 4], 0x494e5354
mov dword [esp], ebx
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8GT2ChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
mov eax, dword [ebp - 0x3fc]
push esi
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp - 0x400]
push esi
mov dword [ebp - 0x4a0], eax
mov edi, dword [ebp - 0x4a0]
cmp dword [ebp - 0x4b4], edi
je 0x700f1506
lea eax, [ebp - 0x14c]
mov dword [esp + 4], 0x134
mov dword [esp], eax
mov ecx, edi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push ebx
cmp edx, 0x134
push ebx
jne 0x700f10a6
mov dword [esp], 0x134
mov ecx, dword [ebp - 0x4a0]
call fcn.700a905c
cmp word [ebp - 0x12e], 0
push ecx
jne 0x700f10a6
movzx eax, word [ebp - 0x14c]
xchg al, ah
movzx eax, ax
mov dword [esp + 4], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0x49c]
call method.OpenMPT::CSoundFile.AllocateInstrument_unsigned_short__unsigned_short_
push edx
mov esi, eax
push edx
test eax, eax
je 0x700f10a6
movzx eax, word [ebp - 0x14c]
mov edi, dword [ebp - 0x49c]
xchg al, ah
cmp word [edi + 0x753c0], ax
jae 0x700f0f33
mov edi, dword [ebp - 0x49c]
mov word [edi + 0x753c0], ax
lea eax, [ebp - 0x14a]
lea ebx, [ebp - 0x3bc]
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x268]
mov dword [esp], eax
mov ecx, ebx
mov dword [ebp - 0x264], 0x1c
mov byte [ebp - 0x260], 3
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push edi
lea ecx, [esi + 0x1ec]
mov dword [esp], ebx
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, ebx
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov byte [esi + 0x21], 2
movzx eax, word [ebp - 0x12a]
xchg al, ah
test ax, ax
jle 0x700f0fd9
or byte [esi + 0xf], 1
movzx eax, word [ebp - 0x12a]
xor edx, edx
xchg al, ah
cwde
shld edx, eax, 8
shl eax, 8
mov dword [esp + 8], 0xfff
add eax, 0x7ff
mov dword [esp + 0xc], 0
adc edx, 0
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.__udivdi3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
mov dword [esi + 8], eax
xor eax, eax
inc eax
cmp eax, 0x81
jne 0x700f10b2
mov dword [esp], esi
lea ecx, [ebp - 0x268]
call method.OpenMPT::ModInstrument.GetSamples___const
push ebx
mov eax, dword [ebp - 0x25c]
movzx ebx, word [ebp - 0x12c]
xchg bl, bh
lea edx, [ebp - 0x264]
cmp eax, edx
jne 0x700f10ef
mov eax, dword [ebp - 0x260]
lea ecx, [ebp - 0x268]
mov dword [esp], eax
call method.std::_Rb_tree_unsigned_short__unsigned_short__std::_Identity_unsigned_short___std::less_unsigned_short___std::allocator_unsigned_short___._M_erase_std::_Rb_tree_node_unsigned_short__
push ecx
mov word [esi + 0x15], 0x80ff
movzx eax, word [ebp - 0x11a]
xchg al, ah
test ax, ax
jne 0x700f111f
mov dword [esi], 0
lea eax, [ebp - 0x468]
movzx ecx, word [ebp - 0x128]
mov dword [esp], eax
xchg cl, ch
xor edx, edx
mov eax, esi
movzx ecx, cx
call sym.__ZN7OpenMPTL18ConvertGT2EnvelopeERNS_13ModInstrumentENS_12EnvelopeTypeEtRSt6vectorINS_6detail10FileReaderIN3mpt14mpt_libopenm
movzx ecx, word [ebp - 0x124]
lea eax, [ebp - 0x450]
xchg cl, ch
mov dword [esp], eax
mov edx, 1
movzx ecx, cx
mov eax, esi
call sym.__ZN7OpenMPTL18ConvertGT2EnvelopeERNS_13ModInstrumentENS_12EnvelopeTypeEtRSt6vectorINS_6detail10FileReaderIN3mpt14mpt_libopenm
movzx ecx, word [ebp - 0x126]
lea eax, [ebp - 0x45c]
xchg cl, ch
mov dword [esp], eax
mov edx, 2
movzx ecx, cx
mov eax, esi
call sym.__ZN7OpenMPTL18ConvertGT2EnvelopeERNS_13ModInstrumentENS_12EnvelopeTypeEtRSt6vectorINS_6detail10FileReaderIN3mpt14mpt_libopenm
add dword [ebp - 0x4a0], 0x14
jmp 0x700f0e87
movzx edx, byte [ebp + eax*2 - 0x11a]
mov word [esi + eax*2 + 0xea], dx
movzx edx, byte [esi + eax + 0x6b]
movsx ecx, byte [ebp + eax*2 - 0x119]
add edx, ecx
cmp edx, 0x78
jle 0x700f10dd
mov edx, 0x78
jmp 0x700f10e6
test edx, edx
jg 0x700f10e6
mov edx, 1
mov byte [esi + eax + 0x6b], dl
jmp 0x700f0fdb
movzx edx, word [eax + 0x10]
test dx, dx
je 0x700f1112
mov edi, dword [ebp - 0x49c]
cmp dx, word [edi + 0x753be]
ja 0x700f1112
imul edx, edx, 0x68
mov word [edi + edx + 0x7643a], bx
mov dword [esp], eax
call method.std._Rb_tree_increment_std::_Rb_tree_node_base_const_
jmp 0x700f1005
xor ebx, ebx
mov ecx, dword [ebp - 0x4a0]
dec ax
setne bl
lea ebx, [ebx*4 + 0x62]
mov dword [esp], ebx
call fcn.7015bbf8
mov edi, ebx
push edx
test al, al
jne 0x700f114f
mov ecx, dword [ebp - 0x4a0]
call fcn.7015bc28
mov edi, eax
lea eax, [ebp - 0x3bc]
mov dword [esp + 4], edi
mov dword [esp], eax
mov ecx, dword [ebp - 0x4a0]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
mov ecx, 0x66
push eax
lea eax, [ebp - 0x3bc]
sub ecx, edi
lea edx, [eax + edi]
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
mov dword [esp], ebx
mov ecx, dword [ebp - 0x4a0]
call fcn.700a905c
movzx eax, word [ebp - 0x3bc]
mov edi, eax
push ebx
rol di, 8
mov word [ebp - 0x4a8], di
test ah, 1
je 0x700f12ba
mov eax, edi
and ax, 0x18
jne 0x700f11b9
mov byte [esi + 0x19], 0
jmp 0x700f11c3
cmp ax, 8
jne 0x700f11c3
mov byte [esi + 0x19], 1
test byte [ebp - 0x4a8], 2
je 0x700f1246
lea edi, [ebp - 0x268]
lea eax, [ebp - 0x3ba]
mov dword [esp + 4], 0x18
mov dword [esp], eax
mov ecx, edi
call fcn.701fcb40
push ecx
push ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], edi
call method.double_mpt::mpt_libopenmpt::parse_or_double__std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__double_
mov ecx, edi
fstp qword [ebp - 0x4b0]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
fld dword [0x702b09dc]
fld qword [ebp - 0x4b0]
fcom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0x700f1244
fstp qword [esp]
mov ecx, dword [ebp - 0x49c]
call method.OpenMPT::CSoundFile.FrequencyToCutOff_double__const
push edx
test al, al
push edx
jns 0x700f123c
mov al, 0x7f
or eax, 0xffffff80
mov byte [esi + 0x15], al
jmp 0x700f1246
fstp st(0)
test byte [ebp - 0x3bb], 4
je 0x700f12ba
lea edi, [ebp - 0x268]
lea eax, [ebp - 0x38a]
mov dword [esp + 4], 0x18
mov dword [esp], eax
mov ecx, edi
call fcn.701fcb40
push eax
push eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], edi
call method.double_mpt::mpt_libopenmpt::parse_or_double__std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__double_
mov ecx, edi
fstp qword [ebp - 0x4b0]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
fld qword [ebp - 0x4b0]
fmul dword [0x702b09e0]
fdiv dword [0x702b098c]
fstp qword [esp]
call method.unsigned_char_mpt::mpt_libopenmpt.saturate_round_unsigned_char__double_
test al, al
jns 0x700f12b4
mov al, 0x7f
or eax, 0xffffff80
mov byte [esi + 0x16], al
mov byte [ebp - 0x4b0], 0
mov al, byte [ebp - 0x4b0]
cmp byte [ebp - 0x357], al
jbe 0x700f10a6
lea eax, [ebp - 0x268]
mov dword [esp + 4], 0x11a
mov dword [esp], eax
mov ecx, dword [ebp - 0x4a0]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 0x11a
push eax
jne 0x700f130e
mov dword [esp], 0x11a
mov ecx, dword [ebp - 0x4a0]
call fcn.700a905c
push eax
jmp 0x700f131d
lea edi, [ebp - 0x268]
mov ecx, 0x11a
xor eax, eax
rep stosb byte es:[edi], al
cmp word [ebp - 0x128], 0
setne byte [ebp - 0x418]
cmp word [ebp - 0x126], 0
setne byte [ebp - 0x417]
cmp word [ebp - 0x124], 0
setne byte [ebp - 0x416]
cmp word [ebp - 0x122], 0
setne al
and eax, dword [ebp - 0x4a8]
mov dword [ebp - 0x430], 0x2010200
cmp byte [ebp - 0x4b0], 3
mov byte [ebp - 0x415], al
ja 0x700f14fb
movzx eax, byte [ebp - 0x4b0]
cmp byte [ebp + eax - 0x418], 0
je 0x700f14fb
cmp byte [ebp - 0x4b0], 3
jne 0x700f13a0
test byte [esi + 0x64], 1
jne 0x700f14fb
movzx eax, byte [ebp + eax - 0x430]
mov dword [esp], esi
mov dword [esp + 4], eax
lea ecx, [ebp - 0x268]
mov ebx, eax
call method.OpenMPT::GT2Envelope.ConvertToMPT_OpenMPT::ModInstrument__OpenMPT::EnvelopeType__const
push edi
cmp byte [ebp - 0x4b0], 3
push edi
jne 0x700f13cb
or byte [esi + 0x64], 0x10
test bl, bl
jne 0x700f13f8
test byte [ebp - 0x25b], 1
je 0x700f13ed
movzx eax, word [ebp - 0x25e]
xchg al, ah
and eax, 0x7fff
mov dword [esi], eax
jmp 0x700f14fb
mov dword [esi], 0
jmp 0x700f14fb
cmp bl, 2
jne 0x700f14fb
test byte [ebp - 0x25b], 2
je 0x700f14fb
movzx eax, word [ebp - 0x262]
xchg al, ah
test ax, ax
jne 0x700f1421
mov eax, 1
movzx ecx, ax
mov eax, 0xff
mov dword [esp + 8], 0x64
cdq
idiv ecx
mov dword [ebp - 0x4b8], eax
xor edx, edx
movzx eax, word [ebp - 0x266]
xchg al, ah
movzx eax, ax
shld edx, eax, 6
shl eax, 6
mov dword [esp + 0xc], 0
add eax, 0x32
adc edx, 0
mov dword [esp], eax
mov dword [esp + 4], edx
call dbg.__udivdi3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__unsigned_long_long__unsigned_long_long_
mov ebx, eax
movzx eax, word [ebp - 0x264]
xchg al, ah
test ax, ax
jne 0x700f148a
mov eax, 1
movzx ecx, ax
mov eax, 0x100
cdq
idiv ecx
mov dword [esp], eax
call method.unsigned_char_mpt::mpt_libopenmpt.saturate_cast_unsigned_char__int__int_
cmp ebx, 0xff
movzx edi, al
jbe 0x700f14ad
mov ebx, 0xff
movzx edx, word [ebp - 0x260]
xchg dl, dh
cmp dx, 5
jbe 0x700f14be
xor edx, edx
movzx edx, dx
mov eax, dword [ebp - 0x4b8]
mov dword [esp + 0x10], edi
movzx ecx, word [ebp - 0x14c]
mov dword [esp + 8], eax
xchg cl, ch
movzx eax, byte [edx + 0x702d3300]
movzx ecx, cx
mov dword [esp], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x49c]
call method.OpenMPT::CSoundFile.PropagateXMAutoVibrato_unsigned_short__OpenMPT::VibratoType__unsigned_char__unsigned_char__unsigned_char_
sub esp, 0x14
inc byte [ebp - 0x4b0]
jmp 0x700f12c1
lea ecx, [ebp - 0x400]
call fcn.701f0798
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x50415444
mov dword [esp], eax
lea ecx, [ebp - 0x430]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8GT2ChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
mov eax, dword [ebp - 0x49c]
push ebx
add eax, 0x763f8
push ebx
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp - 0x42c]
sub eax, dword [ebp - 0x430]
mov ecx, dword [ebp - 0x4b4]
sar eax, 2
imul eax, eax, 0xcccccccd
movzx eax, ax
mov dword [esp], eax
call method.OpenMPT::CPatternContainer.ResizeArray_unsigned_short_
mov eax, dword [ebp - 0x49c]
push ecx
mov esi, dword [ebp - 0x430]
mov eax, dword [eax + 0x753cc]
mov dword [ebp - 0x47c], eax
mov eax, dword [ebp - 0x49c]
mov eax, dword [eax + 0x753c4]
mov dword [ebp - 0x478], eax
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x4c0], eax
cmp esi, dword [ebp - 0x4c0]
je 0x700f1902
test byte [ebp + 0xc], 1
je 0x700f18fa
mov dword [esp], 0x18
mov ecx, esi
call fcn.7015bbf8
test al, al
push edx
je 0x700f18fa
mov dword [esp], esi
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
movzx ebx, ax
lea edi, [ebp - 0x3b8]
mov ecx, 0xd
xor eax, eax
mov dword [ebp - 0x3bc], 0
rep stosb byte es:[edi], al
mov dword [esp + 4], 0x10
mov dword [esp], esi
lea ecx, [ebp - 0x268]
call fcn.700a8b9c
lea ecx, [ebp - 0x268]
push eax
push eax
call fcn.7015b9c0
mov dword [ebp - 0x400], eax
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x3fc], eax
lea eax, [ebp - 0x400]
mov dword [esp], eax
lea ecx, [ebp - 0x14c]
mov byte [ebp - 0x3f8], 3
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push edi
lea edi, [ebp - 0x14c]
lea eax, [ebp - 0x3bc]
lea ecx, [ebp - 0x418]
mov dword [esp], edi
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], 0x11
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, edi
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea ecx, [ebp - 0x260]
call fcn.701c704c
mov dword [esp], esi
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [esp], esi
mov word [ebp - 0x4b8], ax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
jmp 0x700f16a7
movzx eax, ax
mov dword [esp], esi
mov dword [ebp - 0x4a8], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
movzx edi, ax
mov word [ebp - 0x4a4], ax
mov eax, dword [ebp - 0x4a8]
imul eax, edi
mov ecx, esi
lea eax, [eax + eax*4]
mov dword [esp], eax
call fcn.7015bbf8
cmp word [ebp - 0x4b8], 1
push ecx
ja 0x700f18fa
dec al
jne 0x700f18fa
mov eax, dword [ebp - 0x4a8]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x4b4]
call method.OpenMPT::CPatternContainer.Insert_unsigned_short__unsigned_int_
push edx
test al, al
push edx
je 0x700f18fa
shl ebx, 6
mov eax, dword [ebp - 0x49c]
mov dword [ebp - 0x4bc], ebx
mov ecx, dword [eax + 0x763f8]
lea eax, [ebp - 0x3bc]
add ecx, ebx
mov dword [esp + 4], 0x11
mov dword [esp], eax
call method.OpenMPT::CPattern.SetName_char_const__unsigned_int_
push ebx
lea eax, [ebp - 0x268]
push ebx
lea ecx, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], edi
mov word [ebp - 0x268], 0
call method.std::vector_std::pair_unsigned_char__unsigned_char___std::allocator_std::pair_unsigned_char__unsigned_char_____.vector_unsigned_int__std::pair_unsigned_char__unsigned_char__const__std::allocator_std::pair_unsigned_char__unsigned_char____const___c
push ecx
mov dword [ebp - 0x4b0], 0
push ecx
mov edi, dword [ebp - 0x4a8]
cmp dword [ebp - 0x4b0], edi
jae 0x700f18ef
mov eax, dword [ebp - 0x49c]
mov ecx, dword [ebp - 0x4bc]
add ecx, dword [eax + 0x763f8]
mov eax, dword [ebp - 0x4b0]
mov dword [esp], eax
call method.OpenMPT::CPattern.GetRow_unsigned_int_
mov dword [ebp - 0x4a0], 0
mov dword [ebp - 0x4c4], eax
push edx
mov eax, dword [ebp - 0x4a4]
cmp word [ebp - 0x4a0], ax
jae 0x700f18e4
xor eax, eax
lea edi, [ebp - 0x268]
mov ecx, 6
lea ebx, [ebp - 0x268]
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x49c]
mov edi, dword [ebp - 0x4a0]
cmp di, word [eax + 0x753bc]
jae 0x700f17fa
imul ebx, dword [ebp - 0x4a0], 6
add ebx, dword [ebp - 0x4c4]
lea eax, [ebp - 0x400]
mov dword [esp + 4], 5
mov dword [esp], eax
mov ecx, esi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 5
push eax
jne 0x700f182a
mov dword [esp], 5
mov ecx, esi
call fcn.700a905c
push edi
jmp 0x700f1839
lea edi, [ebp - 0x400]
mov ecx, 5
xor eax, eax
rep stosb byte es:[edi], al
mov al, byte [ebp - 0x400]
mov edx, dword [ebp - 0x4a0]
add edx, edx
lea ecx, [eax - 1]
add edx, dword [ebp - 0x14c]
cmp cl, 0x77
ja 0x700f185a
inc eax
mov byte [ebx], al
mov byte [edx], al
mov al, byte [ebp - 0x3ff]
test al, al
je 0x700f186a
mov byte [ebx + 1], al
mov byte [edx + 1], al
mov al, byte [ebp - 0x3fc]
test al, al
je 0x700f188d
cmp word [ebp - 0x4b8], 0
mov byte [ebx + 2], 1
jne 0x700f1887
shr al, 2
jmp 0x700f188a
sub eax, 0x10
mov byte [ebx + 4], al
lea eax, [ebp - 0x478]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x47c]
mov dword [esp + 0x10], eax
movzx eax, byte [edx + 1]
mov dword [esp + 0xc], eax
movzx eax, byte [edx]
mov dword [esp + 8], eax
mov edx, ebx
movzx eax, byte [ebp - 0x351]
mov dword [esp + 4], eax
movzx eax, byte [ebp - 0x3fd]
movzx ecx, byte [ebp - 0x3fe]
mov dword [esp], eax
mov eax, dword [ebp - 0x49c]
call method.OpenMPT.TranslateGraoumfEffect_OpenMPT::CSoundFile__OpenMPT::ModCommand__unsigned_char__unsigned_char__short__unsigned_char__unsigned_char__OpenMPT::FPInt_10000u__unsigned_int___unsigned_int_
inc dword [ebp - 0x4a0]
jmp 0x700f17b0
inc dword [ebp - 0x4b0]
jmp 0x700f176d
lea ecx, [ebp - 0x14c]
call method.std::_Vector_base_std::pair_unsigned_char__unsigned_char___std::allocator_std::pair_unsigned_char__unsigned_char_____._Vector_base____clone_.isra.0_
add esi, 0x14
jmp 0x700f159d
lea ebx, [ebp - 0x3bc]
lea eax, [ebp - 0x474]
mov dword [esp + 4], 0x544e414d
mov dword [esp], eax
mov ecx, ebx
call fcn.7015c230
push esi
mov ecx, ebx
push esi
mov dword [esp], 0x26
call fcn.7015bbf8
test al, al
push ecx
je 0x700f1a56
mov dword [esp], ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov esi, eax
xor ebx, ebx
cmp bx, si
je 0x700f1a56
mov dword [esp], 0x24
lea ecx, [ebp - 0x3bc]
call fcn.7015bbf8
test al, al
push edx
je 0x700f1a56
lea eax, [ebp - 0x14c]
mov dword [esp + 4], 0x24
mov dword [esp], eax
lea ecx, [ebp - 0x3bc]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push edi
cmp edx, 0x24
push edi
jne 0x700f19a1
mov dword [esp], 0x24
lea ecx, [ebp - 0x3bc]
call fcn.700a905c
push ecx
jmp 0x700f19b0
lea edi, [ebp - 0x14c]
mov ecx, 9
xor eax, eax
rep stosd dword es:[edi], eax
cmp word [ebp - 0x14c], 0
jne 0x700f1a50
movzx eax, word [ebp - 0x14a]
mov edi, dword [ebp - 0x49c]
xchg al, ah
cmp word [edi + 0x753bc], ax
jbe 0x700f1a50
lea eax, [ebp - 0x148]
lea ecx, [ebp - 0x268]
mov dword [ebp - 0x400], eax
lea eax, [ebp - 0x400]
mov dword [esp], eax
mov dword [ebp - 0x3fc], 0x20
mov byte [ebp - 0x3f8], 3
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push eax
mov edi, dword [ebp - 0x49c]
movzx eax, word [ebp - 0x14a]
xchg al, ah
movzx eax, ax
shl eax, 5
lea ecx, [ebp - 0x418]
mov dword [ebp - 0x414], 0x14
lea eax, [edi + eax + 0x75421]
lea edi, [ebp - 0x268]
mov dword [esp], edi
mov dword [ebp - 0x418], 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, edi
push edx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
inc ebx
jmp 0x700f1945
lea ecx, [ebp - 0x3bc]
call fcn.700aa254
lea ecx, [ebp - 0x430]
call fcn.701f0798
lea ecx, [ebp - 0x450]
call fcn.701f0798
lea ecx, [ebp - 0x45c]
call fcn.701f0798
lea ecx, [ebp - 0x468]
call fcn.701f0798
lea ecx, [ebp - 0x474]
call fcn.701ed0d0
lea ecx, [ebp - 0x444]
call fcn.700aa254
jmp 0x700f1bc9
mov al, byte [ebp - 0x4a1]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8