Function at 0x629749c8
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0xe4]
sub esp, 0x24c
mov dword [ebp - 0x200], ecx
mov eax, dword [ebp + 8]
mov ecx, eax
mov dword [eax + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], 0xcc
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
cmp edx, 0xcc
push ecx
push ecx
je 0x62974a12
mov byte [ebp - 0x217], 0
jmp 0x6297636a
mov ecx, dword [ebp + 8]
mov dword [esp], 0xcc
call fcn.62924a94
mov eax, ebx
push edx
call method.OpenMPT.ValidateHeader_OpenMPT::STPFileHeader_const_
mov byte [ebp - 0x217], al
test al, al
je 0x6297636a
cmp dword [ebp + 0xc], 0x40
je 0x6297636a
mov ecx, dword [ebp - 0x200]
mov dword [esp], 0x8000000
call method.OpenMPT::CSoundFile.InitializeGlobals_OpenMPT::MODTYPE_
lea ecx, [ebp - 0x14c]
lea ebx, [ebp - 0x1b4]
push eax
lea eax, [ebp - 0x144]
mov byte [esp + 8], 0
mov dword [esp + 4], 0x62b1e63b
mov dword [esp], str.Soundtracker_Pro_II_v
mov dword [ebp - 0x14c], eax
call sym.__ZNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS2_15common_encodingE0ES4_EESaIcEE12_M_constructIP
lea eax, [ebp - 0x14c]
sub esp, 0xc
mov ecx, ebx
mov dword [esp], eax
call fcn.62a64fac
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 - 0xe0]
mov dword [esp], ebx
mov dword [esp + 4], eax
lea ecx, [ebp - 0x14c]
call fcn.629c8758
push eax
push eax
mov eax, dword [ebp - 0x200]
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, ebx
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 - 0x144]
lea ecx, [ebp - 0x14c]
mov byte [esp + 8], 0
mov dword [esp + 4], 0x62b1e63f
mov dword [esp], 0x62b1e63c
mov dword [ebp - 0x14c], eax
call sym.__ZNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS2_15common_encodingE0ES4_EESaIcEE12_M_constructIP
mov eax, dword [ebp - 0x200]
sub esp, 0xc
lea ecx, [eax + 0x13d008]
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 eax, dword [ebp - 0x200]
mov edi, dword [ebp - 0x200]
mov dword [eax + 0x13d068], 0x1c
mov dword [eax + 0x753bc], 4
movzx eax, word [ebp - 0x5c]
xchg al, ah
movzx eax, ax
mov dword [edi + 0x753c4], eax
movzx eax, word [ebp - 0x58]
xchg al, ah
movzx eax, ax
call method.OpenMPT.ConvertTempo_unsigned_short_
mov edi, dword [ebp - 0x200]
movzx ebx, byte [edi + 0x76418]
imul ebx, ebx, 0x2c
movzx esi, byte [ebp - 0xde]
add ebx, dword [edi + 0x76408]
mov dword [edi + 0x753cc], eax
mov dword [edi + 0x75404], 0x38
mov dword [edi + 0x75408], 0x3580
cmp esi, 0x80
jbe 0x62974bc0
mov esi, pe_nt_image_headers32
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
mov edx, ecx
mov word [ebp - 0x14c], 0xffff
sub edx, eax
sar edx, 1
cmp esi, edx
jbe 0x62974bf9
lea eax, [ebp - 0x14c]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov eax, esi
sub eax, edx
mov ecx, ebx
mov dword [esp + 4], eax
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 0x62974c07
jae 0x62974c07
lea edx, [esi + esi]
add eax, edx
cmp ecx, eax
je 0x62974c07
mov dword [ebx + 4], eax
xor eax, eax
cmp esi, eax
jle 0x62974c3d
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
sub edx, ecx
sar edx, 1
movzx edi, byte [ebp + eax - 0xdc]
cmp eax, edx
jb 0x62974c36
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0x62b1e640
call method.std.__throw_out_of_range_fmt_char_const__..._
mov word [ecx + eax*2], di
inc eax
jmp 0x62974c09
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1f0], 0
mov dword [ebp - 0x1ec], 0
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1e0], 0
mov word [ebp - 0x210], 0
mov word [ebp - 0x216], 0
movzx eax, word [ebp - 0x1c]
xchg al, ah
cmp word [ebp - 0x210], ax
jae 0x6297535f
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov esi, eax
lea eax, [esi - 1]
cmp ax, 0xf9e
ja 0x629762d6
cmp word [ebp - 0xe0], 0x200
je 0x62974cce
movzx ebx, word [ebp - 0x1a]
xchg bl, bh
movzx ebx, bx
jmp 0x62974cdc
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
lea ebx, [eax - 2]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [esp], ebx
mov dword [ebp - 0x208], eax
call fcn.62924a94
mov eax, dword [ebp - 0x208]
push edi
mov dword [esp + 4], eax
lea edi, [ebp - 0x1c8]
mov eax, dword [ebp + 8]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov ecx, edi
call fcn.629c9a30
sub esp, 0xc
lea ecx, [ebp - 0x1dc]
mov dword [esp], edi
call method.std::shared_ptr_mpt::mpt_libopenmpt::IO::IFileData_const_.shared_ptr_std::shared_ptr_mpt::mpt_libopenmpt::IO::IFileData_const__
mov eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0x1bc]
push edx
lea ecx, [ebp - 0x1d0]
mov dword [esp], eax
call method.std::shared_ptr_mpt::mpt_libopenmpt::BasicPathString_mpt::mpt_libopenmpt::NativePathTraits__true___.shared_ptr_std::shared_ptr_mpt::mpt_libopenmpt::BasicPathString_mpt::mpt_libopenmpt::NativePathTraits__true____
push ecx
mov ecx, edi
call fcn.629259cc
mov eax, dword [ebp - 0x200]
mov ax, word [eax + 0x753be]
cmp ax, si
mov word [ebp - 0x216], ax
jae 0x62974d6f
mov word [ebp - 0x216], si
mov eax, dword [ebp - 0x200]
mov di, word [ebp - 0x216]
mov word [eax + 0x753be], di
mov dword [esp], 1
movzx eax, si
imul ebx, eax, 0x68
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x200]
lea eax, [eax + ebx + 0x7641c]
mov ecx, eax
mov dword [ebp - 0x20c], eax
call method.OpenMPT::ModSample.Initialize_OpenMPT::MODTYPE_
push eax
lea ebx, [ebx + 0x76447]
movzx eax, word [ebp - 0xe0]
xchg al, ah
cmp ax, 1
ja 0x62974f51
mov eax, dword [ebp - 0x200]
mov dword [esp + 4], 0x1f
lea ecx, [ebp - 0x1b4]
mov dword [ebp - 0x1ac], 0
lea esi, [eax + ebx]
lea ebx, [ebp - 0x1dc]
mov dword [esp], ebx
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1a4], 0
call fcn.62924398
push eax
mov ecx, ebx
push eax
mov eax, dword [ebp - 0x1b4]
mov dword [esp], eax
call fcn.62924a94
lea ecx, [ebp - 0x1b4]
push eax
call fcn.629c99fc
lea ebx, [ebp - 0x14c]
mov edx, dword [ebp - 0x1b4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], 2
mov dword [esp], ebx
call method.OpenMPT::mpt::String::detail.ReadStringBuffer_abi:cxx11__OpenMPT::mpt::String::ReadWriteMode__char_const__unsigned_int_
jmp 0x62974e56
mov ecx, esi
mov dword [esp], ebx
call method.mpt::mpt_libopenmpt::charbuf_22u_.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__
lea ecx, [ebp - 0x1ac]
call fcn.62a3341c
mov dword [esp], 1
lea ecx, [ebp - 0x1dc]
call fcn.62924a94
push eax
mov eax, dword [ebp - 0x208]
lea ebx, [ebp - 0x1dc]
mov dword [esp + 4], 0x1e
lea esi, [eax + 0x7384]
mov dword [esp], ebx
shl esi, 5
lea ecx, [ebp - 0x1b4]
add esi, dword [ebp - 0x200]
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1a4], 0
call fcn.62924398
jmp 0x62974ed9
push edi
mov eax, dword [ebp - 0x1b4]
push edi
mov ecx, ebx
mov dword [esp], eax
call fcn.62924a94
push ecx
lea ecx, [ebp - 0x1b4]
call fcn.629c99fc
lea ebx, [ebp - 0x14c]
mov edx, dword [ebp - 0x1b4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], 2
mov dword [esp], ebx
call method.OpenMPT::mpt::String::detail.ReadStringBuffer_abi:cxx11__OpenMPT::mpt::String::ReadWriteMode__char_const__unsigned_int_
mov ecx, esi
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 edx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea ecx, [ebp - 0x1ac]
call fcn.62a3341c
jmp 0x62975012
lea eax, [ebp - 0x144]
lea esi, [ebp - 0x14c]
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x1dc]
mov dword [esp + 8], 0x101
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x148], 0
mov byte [ebp - 0x144], 0
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader14ReadNullStringIN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
mov eax, dword [ebp - 0x200]
mov dword [esp], esi
lea ecx, [eax + ebx]
call method.mpt::mpt_libopenmpt::charbuf_22u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea ecx, [ebp - 0x1dc]
push eax
mov dword [esp], 1
call fcn.62924a94
push eax
lea eax, [ebp - 0x1dc]
mov dword [esp + 8], 0x1f
mov dword [esp + 4], esi
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader14ReadNullStringIN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
mov eax, dword [ebp - 0x208]
mov dword [esp], esi
lea ecx, [eax + 0x7384]
shl ecx, 5
add ecx, dword [ebp - 0x200]
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
test byte [ebp - 0x1d4], 1
push eax
je 0x62975007
mov dword [esp], 1
lea ecx, [ebp - 0x1dc]
call fcn.62924a94
push eax
lea ecx, [ebp - 0x14c]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea eax, [ebp - 0x14c]
mov dword [esp + 4], 0x14
mov dword [esp], eax
lea ecx, [ebp - 0x1dc]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push eax
cmp edx, 0x14
push eax
jne 0x6297504a
mov dword [esp], 0x14
lea ecx, [ebp - 0x1dc]
call fcn.62924a94
push edi
jmp 0x62975059
lea edi, [ebp - 0x14c]
mov ecx, 5
xor eax, eax
rep stosd dword es:[edi], eax
imul edx, dword [ebp - 0x208], 0x68
add edx, dword [ebp - 0x200]
mov eax, dword [ebp - 0x14c]
bswap eax
mov dword [edx + 0x7641c], eax
movzx eax, byte [ebp - 0x148]
cmp al, 0x40
jbe 0x62975084
mov eax, 0x40
shl eax, 2
mov ecx, dword [ebp - 0x146]
mov word [edx + 0x7643a], ax
mov eax, dword [ebp - 0x142]
imul edx, dword [ebp - 0x208], 0x68
add edx, dword [ebp - 0x200]
bswap ecx
bswap eax
add eax, ecx
mov ebx, dword [edx + 0x7641c]
mov dword [edx + 0x76420], ecx
mov dword [edx + 0x76424], eax
cmp ecx, ebx
jb 0x629750cc
lea ecx, [ebx - 1]
mov dword [edx + 0x76420], ecx
cmp eax, ebx
jbe 0x629750e4
imul eax, dword [ebp - 0x208], 0x68
mov edi, dword [ebp - 0x200]
mov dword [edi + eax + 0x76424], ebx
imul eax, dword [ebp - 0x208], 0x68
add eax, dword [ebp - 0x200]
mov edx, dword [eax + 0x76420]
cmp edx, dword [eax + 0x76424]
jbe 0x62975115
mov dword [eax + 0x76420], 0
mov dword [eax + 0x76424], 0
jmp 0x62975125
jae 0x62975125
mov eax, dword [ebp - 0x20c]
or word [eax + 0x22], 2
mov dword [eax + 0x44], edx
movzx eax, word [ebp - 0xe0]
mov edx, eax
xchg dl, dh
cmp eax, 0x200
jne 0x62975157
imul edx, dword [ebp - 0x208], 0x68
movzx eax, byte [ebp - 0x13a]
shl eax, 3
mov edi, dword [ebp - 0x200]
mov byte [edi + edx + 0x76441], al
jmp 0x62975160
test dx, dx
je 0x62975348
mov edx, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x1e8]
mov ecx, edx
sub ecx, eax
movzx ebx, word [ebp - 0x216]
sar ecx, 1
cmp ebx, ecx
jbe 0x62975192
mov eax, ebx
sub eax, ecx
lea ecx, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::vector_unsigned_short__std::allocator_unsigned_short___._M_default_append_unsigned_int_
push esi
jmp 0x629751a3
jae 0x629751a3
lea ecx, [ebx + ebx]
add eax, ecx
cmp edx, eax
je 0x629751a3
mov dword [ebp - 0x1e4], eax
mov esi, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1f4]
mov edx, esi
sub edx, eax
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp ebx, edx
jbe 0x629751d3
sub ebx, edx
lea ecx, [ebp - 0x1f4]
mov dword [esp], ebx
call method.std::vector_std::vector_OpenMPT::STPLoopInfo__std::allocator_OpenMPT::STPLoopInfo_____std::allocator_std::vector_OpenMPT::STPLoopInfo__std::allocator_OpenMPT::STPLoopInfo_______._M_default_append_unsigned_int_
push ecx
jmp 0x629751f4
jae 0x629751f4
imul ebx, ebx, 0xc
add ebx, eax
cmp esi, ebx
je 0x629751f4
mov edi, ebx
mov eax, dword [edi]
add edi, 0xc
call method.std::_Vector_base_OpenMPT::STPLoopInfo__std::allocator_OpenMPT::STPLoopInfo___._M_deallocate_OpenMPT::STPLoopInfo__unsigned_int___clone_.isra.0_
cmp esi, edi
jne 0x629751e0
mov dword [ebp - 0x1f0], ebx
mov eax, dword [ebp - 0x208]
lea ebx, [eax - 1]
imul ebx, ebx, 0xc
add ebx, dword [ebp - 0x1f4]
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
je 0x62975210
mov dword [ebx + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
movzx edi, ax
mov ecx, dword [ebp + 8]
mov esi, edi
lea eax, [edi*8]
mov dword [esp], eax
call fcn.629c9c58
test al, al
push edx
jne 0x62975247
lea ecx, [ebp - 0x1dc]
call fcn.629259cc
jmp 0x629762d6
mov edx, dword [ebx]
mov eax, dword [ebx + 8]
sub eax, edx
sar eax, 2
imul eax, eax, 0xaaaaaaab
cmp edi, eax
jbe 0x629752bb
mov eax, dword [ebx + 4]
sub eax, edx
mov dword [ebp - 0x214], eax
imul eax, edi, 0xc
test edi, edi
mov dword [ebp - 0x20c], eax
je 0x6297527f
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov edi, eax
jmp 0x62975281
xor edi, edi
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
sub eax, edx
test eax, eax
jle 0x6297529c
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], edi
call sym._memmove
mov eax, dword [ebx]
call method.std::_Vector_base_OpenMPT::STPLoopInfo__std::allocator_OpenMPT::STPLoopInfo___._M_deallocate_OpenMPT::STPLoopInfo__unsigned_int___clone_.isra.0_
mov eax, dword [ebp - 0x214]
add eax, edi
mov dword [ebx], edi
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x20c]
add eax, edi
mov dword [ebx + 8], eax
test si, si
mov dword [ebp - 0x1ac], 0
jne 0x6297530d
imul esi, dword [ebp - 0x208], 0x68
add esi, dword [ebp - 0x200]
test byte [esi + 0x7643e], 2
je 0x62975348
mov edx, dword [esi + 0x76420]
mov eax, dword [esi + 0x76424]
sub eax, edx
mov ecx, ebx
mov dword [ebp - 0x1b0], eax
lea eax, [ebp - 0x1b4]
mov dword [esp], eax
mov dword [ebp - 0x1b4], edx
call method.std::vector_OpenMPT::STPLoopInfo__std::allocator_OpenMPT::STPLoopInfo___.push_back_OpenMPT::STPLoopInfo_const_
push eax
jmp 0x62975348
xor edi, edi
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [ebp - 0x1b0], eax
lea eax, [ebp - 0x1b4]
mov dword [esp], eax
mov ecx, ebx
call method.std::vector_OpenMPT::STPLoopInfo__std::allocator_OpenMPT::STPLoopInfo___.push_back_OpenMPT::STPLoopInfo_const_
inc edi
push eax
cmp di, si
jne 0x6297530f
lea ecx, [ebp - 0x1dc]
call fcn.629259cc
inc word [ebp - 0x210]
jmp 0x62974c8b
cmp word [ebp - 0xe0], 0
mov word [ebp - 0x232], pe_nt_image_headers32
jne 0x62975384
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov word [ebp - 0x232], ax
movzx eax, byte [ebp - 0xdd]
cmp word [ebp - 0xe0], 0
mov word [ebp - 0x224], ax
je 0x62975475
mov eax, dword [ebp + 8]
mov word [ebp - 0x20c], 4
xor esi, esi
mov ebx, dword [eax + 8]
cmp word [ebp - 0x232], si
je 0x6297544a
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
inc ax
je 0x6297544a
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov word [ebp - 0x224], ax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
cmp ax, 0x7f
mov word [ebp - 0x20c], ax
ja 0x629762d6
mov eax, dword [ebp - 0x200]
mov ax, word [eax + 0x753bc]
cmp ax, word [ebp - 0x20c]
jae 0x62975417
mov eax, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x200]
mov ecx, dword [ebp + 8]
movzx edx, word [ebp - 0x224]
mov word [edi + 0x753bc], ax
movzx eax, word [ebp - 0x20c]
imul eax, edx
shl eax, 2
mov dword [esp], eax
call fcn.62924a94
inc esi
push edi
jmp 0x629753b1
mov eax, dword [ebp + 8]
cmp ebx, dword [eax + 8]
jbe 0x62975470
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [esp + 4], ebx
mov dword [esp], 0
call dword [eax + 0x20]
push esi
test al, al
push esi
je 0x6297547e
mov eax, dword [ebp + 8]
mov dword [eax + 8], ebx
jmp 0x6297547e
mov word [ebp - 0x20c], 4
mov eax, dword [ebp - 0x200]
movzx ebx, word [eax + 0x753bc]
test ebx, ebx
je 0x629754cb
lea eax, [ebx + ebx*8]
mov dword [esp], eax
call sym.operator_new_unsigned_int_
mov dword [ebp - 0x214], eax
mov byte [eax], 0
mov byte [eax + 1], 0
mov byte [eax + 2], 0
mov byte [eax + 3], 0
mov byte [eax + 4], 0
mov byte [eax + 5], 0
mov byte [eax + 6], 0
mov byte [eax + 7], 0
mov byte [eax + 8], 0
add eax, 9
dec ebx
jne 0x629754a0
jmp 0x629754d5
mov dword [ebp - 0x214], 0
movzx eax, word [ebp - 0x5a]
mov word [ebp - 0x236], 0
xchg al, ah
mov byte [ebp - 0x210], 0
mov word [ebp - 0x234], ax
mov di, word [ebp - 0x236]
cmp word [ebp - 0x232], di
je 0x62975e01
cmp word [ebp - 0xe0], 0
je 0x6297554e
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
movzx esi, ax
cmp si, 0xffff
je 0x62975e01
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov word [ebp - 0x224], ax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov word [ebp - 0x20c], ax
jmp 0x62975555
movzx esi, word [ebp - 0x236]
movzx ebx, word [ebp - 0x20c]
movzx eax, word [ebp - 0x224]
imul ebx, eax
shl ebx, 2
mov ecx, dword [ebp + 8]
mov dword [esp], ebx
call fcn.629c9c58
test al, al
push ecx
je 0x62975e01
test byte [ebp + 0xc], 1
je 0x629755e8
movzx eax, word [ebp - 0x224]
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x200]
mov dword [esp], esi
lea ecx, [eax + 0x763f8]
mov eax, dword [ebp - 0x23c]
mov dword [esp + 4], eax
call method.OpenMPT::CPatternContainer.Insert_unsigned_short__unsigned_int_
push edx
mov byte [ebp - 0x218], al
push edx
test al, al
je 0x629755e8
movzx eax, word [ebp - 0x20c]
shl esi, 6
mov dword [ebp - 0x21c], 0
lea eax, [eax + eax*8]
mov dword [ebp - 0x240], esi
add eax, dword [ebp - 0x214]
mov dword [ebp - 0x244], eax
jmp 0x62975671
mov dword [esp], ebx
mov ecx, dword [ebp + 8]
call fcn.62924a94
push eax
jmp 0x62975df5
mov eax, dword [ebp - 0x200]
mov esi, dword [ebp - 0x240]
add esi, dword [eax + 0x763f8]
mov ecx, esi
call method.OpenMPT::CPattern.GetNumChannels___const
mov ecx, esi
call method.OpenMPT::CPattern.GetNumChannels___const
mov dl, byte [ebp - 0x234]
and edx, 3
mov ebx, dword [esi]
movzx eax, ax
cmp dl, 2
je 0x62975688
cmp dl, 3
je 0x6297569c
mov byte [ebp - 0x220], 0
dec dl
jne 0x6297564a
test byte [ebp - 0x21c], 3
sete byte [ebp - 0x220]
imul eax, dword [ebp - 0x21c]
imul eax, eax, 6
mov esi, dword [ebp - 0x214]
add ebx, eax
mov byte [ebp - 0x22c], 0
cmp dword [ebp - 0x244], esi
jne 0x629756b1
inc dword [ebp - 0x21c]
mov edi, dword [ebp - 0x21c]
cmp dword [ebp - 0x23c], edi
ja 0x629755f9
jmp 0x62975df5
mov dl, byte [ebp - 0x21c]
and edx, 1
xor edx, 1
mov byte [ebp - 0x220], dl
jmp 0x6297564a
mov edx, dword [ebp - 0x21c]
and edx, 3
cmp edx, 3
setne byte [ebp - 0x220]
jmp 0x6297564a
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadArrayIhLj4EN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileC
mov edx, dword [ebp - 0x14c]
mov edi, edx
mov byte [ebx + 1], dl
shr edi, 0x10
mov dword [ebp - 0x230], edi
mov edi, edx
shr edi, 0x18
test dh, dh
mov dword [ebp - 0x208], edi
mov cl, byte [ebp - 0x208]
movzx eax, dh
mov byte [ebx + 5], cl
je 0x62975705
add eax, 0x19
mov ecx, 9
mov byte [ebx], al
mov edi, esi
xor eax, eax
rep stosb byte es:[edi], al
mov al, byte [ebp - 0x208]
and eax, 0xf
mov byte [ebp - 0x237], al
mov eax, dword [ebp - 0x208]
shr eax, 4
mov dword [ebp - 0x228], eax
mov eax, dword [ebp - 0x208]
and eax, 0xf
mov cl, byte [ebp - 0x228]
mov edi, eax
sub ecx, eax
sub edi, dword [ebp - 0x228]
mov al, cl
test edi, edi
jle 0x62975747
mov eax, edi
shl eax, 4
mov cl, byte [ebp - 0x230]
and ecx, 0xfffffff0
cmp cl, 0xf0
jne 0x629757fd
mov ecx, dword [ebp - 0x230]
mov eax, dword [ebp - 0x208]
shl ecx, 8
and cx, 0xf00
or ax, cx
je case.0x62975811.21
cwde
call method.OpenMPT.ConvertTempo_unsigned_short_
mov dword [ebp - 0x204], 0
mov dword [ebp - 0x208], eax
fild qword [ebp - 0x208]
fdiv dword [0x62b1e7d0]
fstp qword [esp]
call sym._round
fld dword [0x62b1e7e0]
fxch st(1)
fcom st(1)
fnstsw ax
fstp st(1)
sahf
mov al, 0xff
jae 0x629757ef
fldz
fcomp st(1)
fnstsw ax
sahf
mov al, 0
jae 0x629757f3
fnstcw word [ebp - 0x1fa]
mov ax, word [ebp - 0x1fa]
or ah, 0xc
mov word [ebp - 0x1fc], ax
fldcw word [ebp - 0x1fc]
fistp word [ebp - 0x208]
fldcw word [ebp - 0x1fa]
mov eax, dword [ebp - 0x208]
jmp 0x629757f5
fstp st(0)
jmp 0x629757f5
fstp st(0)
mov byte [ebx + 5], al
jmp 0x62975ccf
cmp byte [ebp - 0x230], 0x4f
ja case.0x62975811.21
movzx ecx, byte [ebp - 0x230]
jmp dword [ecx*4 + 0x62b1e68c]
mov byte [ebp - 0x210], al
jmp case.0x62975811.21
cmp byte [ebp - 0x208], 0
je case.0x62975811.21
mov byte [ebx + 3], 1
jmp case.0x62975811.21
mov byte [ebx + 3], 2
jmp case.0x62975811.21
mov byte [ebx + 3], 3
jmp case.0x62975811.21
mov al, byte [ebx + 5]
cmp al, 0xf
jbe 0x62975854
mov al, 0xf
or eax, 0x10
jmp 0x62975865
mov al, byte [ebx + 5]
cmp al, 0xf
jbe 0x62975862
mov al, 0xf
or eax, 0x20
mov byte [esi], al
mov byte [esi + 1], 0
mov byte [esi + 2], 0
mov byte [esi + 7], 0
jmp case.0x62975811.21
mov al, byte [ebp - 0x208]
mov byte [esi], 0
mov byte [esi + 1], al
jmp 0x6297586b
mov al, byte [ebp - 0x208]
mov byte [esi], 0
mov byte [esi + 1], 0
mov byte [esi + 2], al
jmp 0x6297586f
mov byte [ebx + 3], 0x17
mov byte [ebp - 0x210], 0
jmp case.0x62975811.21
mov al, byte [ebx + 5]
mov byte [ebx + 3], 0x13
cmp al, 0xf
jbe 0x629758b5
mov al, 0xf
or eax, 0x10
jmp 0x629758ca
mov al, byte [ebx + 5]
mov byte [ebx + 3], 0x13
cmp al, 0xf
jbe 0x629758c7
mov al, 0xf
or eax, 0x20
mov byte [ebx + 5], al
jmp case.0x62975811.21
mov byte [ebx + 2], 1
mov al, byte [ebp - 0x208]
jmp 0x629758f7
test edi, edi
jns 0x629758eb
mov byte [ebx + 2], 4
and eax, 0xf
jmp 0x629758f7
je 0x629758fa
movzx eax, al
sar eax, 4
mov byte [ebx + 2], 3
mov byte [ebx + 4], al
mov byte [esi + 3], 0
jmp case.0x62975811.21
cmp byte [ebp - 0x208], 0
sete byte [ebx + 5]
mov byte [ebx + 3], 0x13
jmp case.0x62975811.21
mov al, byte [ebp - 0x228]
mov byte [ebx + 3], 0x10
mov byte [ebx + 5], al
mov al, byte [ebp - 0x237]
mov byte [ebp - 0x234], al
jmp case.0x62975811.21
mov al, byte [ebp - 0x208]
mov byte [esi + 5], 0
mov byte [esi + 4], al
jmp case.0x62975811.21
cmp byte [ebp - 0x237], 0
je 0x6297595e
mov al, byte [ebp - 0x208]
mov byte [esi + 6], al
jmp case.0x62975811.21
mov byte [esi + 6], 0
jmp case.0x62975811.21
mov byte [ebx + 3], 0xe
jmp case.0x62975811.21
mov al, byte [ebp - 0x208]
mov byte [esi], 0
mov byte [esi + 1], 0
mov byte [esi + 2], 0
mov byte [esi + 7], al
mov byte [esi + 8], 0
jmp case.0x62975811.21
mov byte [ebx + 3], 0xc
jmp case.0x62975811.21
test dl, dl
je case.0x62975811.21
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
movzx edx, dl
cmp edx, ecx
ja case.0x62975811.21
dec edx
lea ecx, [ebp - 0x1b4]
imul edx, edx, 0xc
add edx, eax
mov al, byte [ebp - 0x208]
dec eax
mov byte [ebx + 5], al
mov edi, dword [edx + 4]
sub edi, dword [edx]
movzx eax, al
sar edi, 2
mov dword [ebp - 0x228], eax
imul eax, edi, 0xaaaaaaab
mov dword [ebp - 0x208], eax
mov edi, eax
call method.OpenMPT::ModSample.ModSample_OpenMPT::MODTYPE___clone_.constprop.0_
cmp dword [ebp - 0x208], 8
jbe 0x62975a08
mov edi, 9
cmp dword [ebp - 0x228], edi
jae case.0x62975811.21
mov al, byte [ebx + 5]
mov byte [ebx + 2], 0xf
mov byte [ebx + 4], al
jmp case.0x62975811.21
test dl, dl
je case.0x62975811.21
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
movzx edx, dl
cmp edx, ecx
ja case.0x62975811.21
dec edx
imul edx, edx, 0xc
add edx, eax
mov al, byte [ebp - 0x208]
dec eax
mov byte [ebx + 5], al
movzx edi, al
mov ecx, dword [edx]
mov eax, dword [edx + 4]
sub eax, ecx
sar eax, 2
imul eax, eax, 0xaaaaaaab
cmp edi, eax
jae case.0x62975811.21
imul eax, edi, 0xc
cmp word [ecx + eax + 8], 0
jne 0x62975ab0
mov eax, dword [ebp - 0x200]
mov ax, word [eax + 0x753be]
cmp ax, 0xf9e
ja 0x62975ab0
mov edi, dword [ebp - 0x200]
inc eax
mov word [edi + 0x753be], ax
movzx edx, byte [ebx + 5]
imul edx, edx, 0xc
mov word [ecx + edx + 8], ax
movzx eax, byte [ebx + 5]
imul eax, eax, 0xc
mov eax, dword [ecx + eax + 8]
jmp 0x62975b89
test dl, dl
je case.0x62975811.21
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
movzx edx, dl
cmp edx, ecx
ja case.0x62975811.21
dec edx
lea ecx, [ebp - 0x14c]
imul edx, edx, 0xc
add edx, eax
mov al, byte [ebp - 0x208]
dec eax
mov byte [ebx + 5], al
mov edi, dword [edx + 4]
sub edi, dword [edx]
movzx eax, al
sar edi, 2
mov dword [ebp - 0x228], eax
imul eax, edi, 0xaaaaaaab
mov dword [ebp - 0x208], eax
mov edi, eax
call method.OpenMPT::ModSample.ModSample_OpenMPT::MODTYPE___clone_.constprop.0_
cmp dword [ebp - 0x208], 8
jbe 0x62975b32
mov edi, 9
cmp dword [ebp - 0x228], edi
jae 0x62975b44
mov al, byte [ebx + 5]
mov byte [ebx + 2], 0xf
mov byte [ebx + 4], al
movzx eax, byte [ebx + 1]
mov edx, dword [ebp - 0x1e8]
cmp word [edx + eax*2 - 2], 0
jne 0x62975b80
mov eax, dword [ebp - 0x200]
mov ax, word [eax + 0x753be]
cmp ax, 0xf9e
ja 0x62975b80
mov edi, dword [ebp - 0x200]
inc eax
mov word [edi + 0x753be], ax
movzx ecx, byte [ebx + 1]
mov word [edx + ecx*2 - 2], ax
movzx eax, byte [ebx + 1]
mov ax, word [edx + eax*2 - 2]
mov byte [ebx + 1], al
jmp case.0x62975811.21
test dl, dl
je case.0x62975811.21
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
movzx edx, dl
cmp edx, ecx
ja case.0x62975811.21
dec edx
imul edx, edx, 0xc
add edx, eax
mov al, byte [ebp - 0x208]
dec eax
mov byte [ebx + 5], al
movzx edi, al
mov ecx, dword [edx]
mov eax, dword [edx + 4]
sub eax, ecx
sar eax, 2
imul eax, eax, 0xaaaaaaab
cmp edi, eax
jae case.0x62975811.21
imul eax, edi, 0xc
cmp word [ecx + eax + 0xa], 0
jne 0x62975c1e
mov eax, dword [ebp - 0x200]
mov ax, word [eax + 0x753be]
cmp ax, 0xf9e
ja 0x62975c1e
mov edi, dword [ebp - 0x200]
inc eax
mov word [edi + 0x753be], ax
movzx edx, byte [ebx + 5]
imul edx, edx, 0xc
mov word [ecx + edx + 0xa], ax
movzx eax, byte [ebx + 5]
imul eax, eax, 0xc
mov ax, word [ecx + eax + 0xa]
jmp 0x62975b89
test edi, edi
jns 0x62975c42
and eax, 0xf
mov byte [ebx + 3], 0x13
or eax, 0xffffffb0
jmp 0x629758ca
je case.0x62975811.21
shr al, 4
mov byte [ebx + 3], 0x13
or eax, 0xffffffa0
jmp 0x629758ca
test byte [ebp - 0x208], 0xf0
je 0x62975c6b
mov al, byte [ebp - 0x228]
mov byte [esi + 3], al
jmp case.0x62975811.21
mov al, byte [ebp - 0x208]
mov byte [ebx + 3], 0x13
or eax, 0xffffffc0
jmp 0x629758ca
mov al, byte [ebx + 5]
cmp al, 0xf
jbe 0x62975c86
mov al, 0xf
or eax, 0xffffffd0
jmp 0x62975c97
mov al, byte [ebx + 5]
cmp al, 0xf
jbe 0x62975c94
mov al, 0xf
or eax, 0xffffff90
mov byte [ebx + 3], 0x13
jmp 0x629758ca
mov byte [ebx + 3], 0xa
jmp case.0x62975811.21
mov al, byte [ebp - 0x208]
and eax, 0x70
cmp al, 0x60
jne case.0x62975811.21
mov byte [ebx + 3], 0x13
jmp case.0x62975811.21
cmp byte [ebp - 0x208], 0x1f
ja 0x62975ccf
mov byte [ebx + 3], 0x10
mov byte [ebp - 0x234], 0
jmp case.0x62975811.21
mov byte [ebx + 3], 0x11
mov al, byte [esi + 3]
xor edx, edx
test al, al
je 0x62975d02
cmp byte [ebx + 2], 0
jne 0x62975d02
test al, 0xf0
je 0x62975cf5
movzx edx, al
sar edx, 4
mov byte [ebx + 2], 5
mov byte [ebx + 4], dl
jmp 0x62975cfc
mov byte [ebx + 2], 6
mov byte [ebx + 4], al
mov dl, byte [ebp - 0x218]
cmp byte [ebx + 3], 0
jne 0x62975dea
mov cl, byte [esi + 1]
test cl, cl
je 0x62975d19
mov byte [ebx + 3], 2
jmp 0x62975d40
mov cl, byte [esi + 2]
test cl, cl
je 0x62975d26
mov byte [ebx + 3], 3
jmp 0x62975d40
mov cl, byte [esi]
test cl, cl
je 0x62975d32
mov byte [ebx + 3], 0x13
jmp 0x62975d40
mov cl, byte [esi + 7]
test cl, cl
je 0x62975d48
mov byte [ebx + 3], 4
mov byte [esi + 8], cl
mov byte [ebx + 5], cl
jmp 0x62975dea
mov cl, byte [esi + 4]
test cl, cl
je 0x62975d58
mov byte [ebx + 3], 5
mov byte [esi + 5], cl
jmp 0x62975d40
test al, al
setne cl
xor edx, 1
test cl, dl
je 0x62975d7a
mov byte [ebx + 3], 0xb
test al, 0xf
je 0x62975d71
or eax, 0xfffffff0
jmp 0x62975d85
test al, 0xf0
je 0x62975d85
or eax, 0xf
jmp 0x62975d85
mov al, byte [esi + 6]
test al, al
je 0x62975d8a
mov byte [ebx + 3], 8
mov byte [ebx + 5], al
jmp 0x62975dea
cmp byte [ebp - 0x220], 0
je 0x62975d9d
mov byte [ebx + 3], 0x14
mov byte [ebx + 5], 0x61
jmp 0x62975de3
mov al, byte [ebp - 0x22c]
xor eax, 1
cmp byte [ebp - 0x210], 0
setne dl
and al, dl
je 0x62975de3
test byte [ebp - 0x210], 0xf
mov byte [ebx + 3], 0x18
mov dl, byte [ebp - 0x210]
je 0x62975dcc
or edx, 0xfffffff0
jmp 0x62975dd8
test byte [ebp - 0x210], 0xf0
je 0x62975dd8
or edx, 0xf
mov byte [ebx + 5], dl
mov byte [ebp - 0x22c], al
jmp 0x62975dea
mov byte [ebp - 0x220], 0
add ebx, 6
add esi, 9
jmp 0x62975663
inc word [ebp - 0x236]
jmp 0x629754f2
mov eax, dword [ebp - 0x200]
mov edi, dword [ebp - 0x200]
movzx ecx, word [eax + 0x753bc]
mov eax, 0x100
cdq
idiv ecx
mov dword [edi + 0x753e4], eax
mov ecx, edi
mov dword [esp], 1
call method.OpenMPT::CSoundFile.SetupMODPanning_bool_
cmp word [ebp - 0xe0], 0
push eax
je 0x62975e97
mov dword [esp], 2
mov ecx, dword [ebp + 8]
call fcn.629c9c58
test al, al
push edi
je 0x62975e87
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
inc ax
je 0x62975e87
mov dword [esp], 2
mov ecx, dword [ebp + 8]
call fcn.62924a94
mov eax, dword [ebp + 8]
push esi
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [esp], eax
mov ecx, dword [ebp + 8]
call fcn.62924a94
push ebx
jmp 0x62975e3b
mov dword [esp], 0x22
mov ecx, dword [ebp + 8]
call fcn.62924a94
push ecx
test byte [ebp + 0xc], 2
je 0x629762bd
mov word [ebp - 0x21c], 1
mov esi, dword [ebp - 0x21c]
cmp word [ebp - 0x216], si
jb 0x629762bd
movzx eax, si
mov dword [ebp - 0x20c], eax
mov edi, dword [ebp - 0x200]
imul eax, eax, 0x68
cmp dword [edi + eax + 0x7641c], 0
je 0x629762b1
lea eax, [edi + eax + 0x7641c]
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x208]
mov dword [esp], eax
mov dword [ebp - 0x14c], 0x108
call sym.__ZNK7OpenMPT8SampleIO10ReadSampleERNS_9ModSampleERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataEN
push edx
mov eax, dword [ebp - 0x1f0]
push edx
mov edx, dword [ebp - 0x1f4]
sub eax, edx
sar eax, 2
imul eax, eax, 0xaaaaaaab
movzx ecx, word [ebp - 0x21c]
cmp ecx, eax
ja 0x629762b1
mov eax, dword [ebp - 0x20c]
dec eax
mov dword [ebp - 0x228], eax
imul eax, eax, 0xc
imul ecx, dword [ebp - 0x20c], 0x68
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp - 0x200]
add eax, ecx
cmp dword [eax + 0x76430], 0
je 0x629761e4
mov edi, dword [eax + 0x7641c]
mov dword [ebp - 0x210], edi
test edi, edi
je 0x629761e4
mov edi, dword [ebp - 0x22c]
lea ebx, [edx + edi]
mov edx, dword [ebx + 4]
sub edx, dword [ebx]
sar edx, 2
imul edx, edx, 0xaaaaaaab
cmp edx, 1
jbe 0x629761e4
mov edx, dword [eax + 0x76420]
mov esi, dword [ebp - 0x208]
mov dword [ebp - 0x148], edx
mov edx, dword [eax + 0x76424]
mov dword [ebp - 0x144], edx
mov edx, dword [eax + 0x76428]
mov dword [ebp - 0x140], edx
mov edx, dword [eax + 0x7642c]
mov dword [ebp - 0x13c], edx
mov edx, dword [eax + 0x76434]
mov dword [ebp - 0x134], edx
mov edi, dword [ebp - 0x200]
mov edx, dword [eax + 0x76438]
mov dword [ebp - 0x130], edx
mov edx, dword [eax + 0x7643c]
mov word [ebp - 0x12c], dx
lea ecx, [edi + ecx + 0x76430]
mov dx, word [esi + 0x22]
lea edi, [ebp - 0x121]
mov word [ebp - 0x12a], dx
mov dl, byte [eax + 0x76446]
mov esi, dword [ecx + 0x10]
mov dword [ebp - 0x128], esi
lea esi, [eax + 0x76447]
mov ecx, dword [ecx + 0x14]
mov byte [ebp - 0x122], dl
mov word [ebp - 0x124], cx
mov ecx, 0x16
rep movsb byte es:[edi], byte [esi]
lea esi, [eax + 0x76460]
lea edi, [ebp - 0x108]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x14c], 0
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
sub eax, edx
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x224], edx
xor eax, eax
mov dword [ebp - 0x220], 0
mov edi, dword [ebp - 0x220]
cmp dword [ebp - 0x230], edi
jne 0x629760b7
test cl, cl
je 0x629760a9
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x230]
mov dword [ebp - 0x220], eax
jmp 0x62976108
mov edi, dword [ebp - 0x224]
mov esi, dword [edi]
cmp esi, dword [ebp - 0x210]
jae 0x629760fe
mov edi, dword [ebp - 0x224]
mov edx, dword [ebp - 0x210]
sub edx, esi
mov edi, dword [edi + 4]
cmp edx, edi
jb 0x629760fe
mov esi, 0x10000000
sub esi, edi
add dword [ebp - 0x224], 0xc
cmp esi, eax
jb 0x629760fe
inc dword [ebp - 0x220]
add eax, edi
mov cl, byte [ebp - 0x217]
jmp 0x62976091
test cl, cl
je 0x62976108
mov dword [ebp - 0x14c], eax
lea ecx, [ebp - 0x14c]
call method.OpenMPT::ModSample.AllocateSample__
test eax, eax
je 0x629761e4
imul eax, dword [ebp - 0x20c], 0x68
add eax, dword [ebp - 0x200]
mov dword [ebp - 0x210], 0
xor edx, edx
mov dword [ebp - 0x230], eax
mov esi, dword [ebp - 0x210]
cmp dword [ebp - 0x220], esi
je 0x62976196
imul eax, esi, 0xc
mov edi, dword [ebp - 0x138]
add eax, dword [ebx]
add edi, edx
mov dword [ebp - 0x224], edi
mov edi, dword [ebp - 0x230]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
add esi, dword [edi + 0x76430]
mov edi, dword [ebp - 0x224]
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x210]
mov dword [eax], edx
lea ecx, [esi - 1]
cmp ecx, 8
ja 0x6297618b
mov dword [ebp + esi*4 - 0x10c], edx
add edx, dword [eax + 4]
inc dword [ebp - 0x210]
jmp 0x6297613a
mov ecx, dword [ebp - 0x208]
call method.OpenMPT::ModSample.FreeSample__
lea eax, [ebp - 0x14c]
mov ecx, dword [ebp - 0x208]
mov dword [esp], eax
call method.OpenMPT::ModSample.operator_OpenMPT::ModSample_const_
push eax
imul eax, dword [ebp - 0x20c], 0x68
add eax, dword [ebp - 0x200]
mov edx, dword [eax + 0x7641c]
mov dword [eax + 0x76420], 0
mov dword [eax + 0x76424], edx
mov eax, dword [ebp - 0x208]
or word [eax + 0x22], 2
mov eax, dword [ebp - 0x1e8]
mov edi, dword [ebp - 0x228]
movzx eax, word [eax + edi*2]
test ax, ax
je 0x6297622f
imul eax, eax, 0x68
mov esi, dword [ebp - 0x200]
mov dword [esp + 4], 0
xor ecx, ecx
lea edx, [esi + eax + 0x7641c]
imul eax, dword [ebp - 0x20c], 0x68
mov eax, dword [esi + eax + 0x7641c]
mov dword [esp], eax
mov eax, dword [ebp - 0x208]
call method.OpenMPT.ConvertLoopSlice_OpenMPT::ModSample__OpenMPT::ModSample__unsigned_int__unsigned_int__bool_
mov eax, dword [ebp - 0x22c]
add eax, dword [ebp - 0x1f4]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
cmp esi, ebx
je 0x629762b1
movzx eax, word [ebx + 8]
test ax, ax
je 0x62976278
imul eax, eax, 0x68
mov edi, dword [ebp - 0x200]
mov dword [esp + 4], 1
lea edx, [edi + eax + 0x7641c]
mov eax, dword [ebx + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebx]
call method.OpenMPT.ConvertLoopSlice_OpenMPT::ModSample__OpenMPT::ModSample__unsigned_int__unsigned_int__bool_
movzx eax, word [ebx + 0xa]
test ax, ax
je 0x629762ac
imul eax, eax, 0x68
mov edi, dword [ebp - 0x200]
mov dword [esp + 4], 0
lea edx, [edi + eax + 0x7641c]
mov eax, dword [ebx + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebx]
call method.OpenMPT.ConvertLoopSlice_OpenMPT::ModSample__OpenMPT::ModSample__unsigned_int__unsigned_int__bool_
add ebx, 0xc
jmp 0x62976240
inc word [ebp - 0x21c]
jmp 0x62975eaa
cmp dword [ebp - 0x214], 0
je 0x629762dd
mov eax, dword [ebp - 0x214]
mov dword [esp], eax
call sym.operator_delete_void_
jmp 0x629762dd
mov byte [ebp - 0x217], 0
mov eax, dword [ebp - 0x1e8]
test eax, eax
je 0x629762ef
mov dword [esp], eax
call sym.operator_delete_void_
lea ecx, [ebp - 0x1f4]
call method.std::vector_std::vector_OpenMPT::STPLoopInfo__std::allocator_OpenMPT::STPLoopInfo_____std::allocator_std::vector_OpenMPT::STPLoopInfo__std::allocator_OpenMPT::STPLoopInfo_______.vector____clone_.isra.0_
jmp 0x6297636a
mov al, byte [ebp - 0x217]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8