Function at 0x7010a248
Capabilities:
Contain obfuscated stackstrings
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x8c]
sub esp, 0xfc
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp + 8]
mov ecx, eax
mov dword [eax + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], 0x30
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
cmp edx, 0x30
push esi
push esi
jne 0x7010ae31
mov ecx, dword [ebp + 8]
mov dword [esp], 0x30
call fcn.700a905c
mov eax, ebx
push ecx
call method.OpenMPT.ValidateHeader_OpenMPT::UltFileHeader_const_
mov byte [ebp - 0xd1], al
test al, al
je 0x7010ae31
cmp dword [ebp + 0xc], 0x40
je 0x7010ae5d
movzx eax, byte [ebp - 0x5d]
shl eax, 5
mov ecx, dword [ebp + 8]
add eax, 0x103
mov dword [esp], eax
call fcn.7015bbf8
test al, al
push edx
je 0x7010ae31
mov ecx, dword [ebp - 0xcc]
mov dword [esp], pe_nt_image_headers32
call method.OpenMPT::CSoundFile.InitializeGlobals_OpenMPT::MODTYPE_
lea ebx, [ebp - 0x5c]
lea eax, [ebp - 0x7d]
lea edi, [ebp - 0xb4]
push ecx
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 0xc], 0x20
mov dword [esp + 4], 2
call method.OpenMPT::mpt::String::detail.ReadStringBuffer_abi:cxx11__OpenMPT::mpt::String::ReadWriteMode__char_const__unsigned_int_
mov eax, dword [ebp - 0xcc]
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 esi
mov esi, str.HEpMEpQEpUEp
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov dword [esp], 0x702b4640
call fcn.701f9a70
mov eax, dword [ebp - 0xcc]
lea ecx, [eax + 0x13cff0]
push edi
mov dword [esp], 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___::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__
mov ecx, ebx
mov dword [esp], 0x702b464d
call fcn.701f9a70
push eax
mov eax, dword [ebp - 0xcc]
mov dword [esp], ebx
lea ecx, [eax + 0x13d008]
call method.std::__cxx11::basic_string_char__mpt::mpt_libopenmpt.encoding_char_traits__mpt::mpt_libopenmpt::common_encoding_0__mpt::mpt_libopenmpt::common_encoding___std::allocator_char___::operator_std::__cxx11::basic_string_char__mpt::mpt_libopenmpt::encodi
mov ecx, 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__
movzx eax, byte [ebp - 0x7e]
lea ecx, [ebp - 0xa4]
mov dword [esp], 0x702b4651
mov ebx, dword [ebp + eax*4 - 0x178]
call fcn.701f9a70
lea ecx, [ebp - 0xa4]
push eax
mov dword [esp], 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___::append_char_const_
push edx
lea edx, [ebp - 0x54]
mov dword [ebp - 0x5c], edx
lea ebx, [eax + 8]
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x7010a3d8
mov ecx, 4
mov edi, edx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
jmp 0x7010a3e1
mov dword [ebp - 0x5c], ecx
mov edx, dword [eax + 8]
mov dword [ebp - 0x54], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x58], edx
mov dword [eax], ebx
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov eax, dword [ebp - 0xcc]
lea ebx, [ebp - 0x5c]
mov dword [esp], ebx
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, 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__
lea ecx, [ebp - 0xa4]
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 - 0xcc]
mov dword [eax + 0x13d068], 4
mov dword [eax + 0x753d0], 0xc
lea ecx, [eax + 0x13cfd8]
mov dword [esp + 0xc], 0
movzx eax, byte [ebp - 0x5d]
shl eax, 5
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN7OpenMPT11SongMessage19ReadFixedLineLengthERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataENS5_
mov eax, dword [ebp + 8]
sub esp, 0x10
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov edi, dword [ebp - 0xcc]
movzx eax, al
mov word [edi + 0x753be], ax
mov word [ebp - 0xd0], 1
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xd0]
cmp di, word [eax + 0x753be]
ja 0x7010a6f5
cmp byte [ebp - 0x7e], 0x33
jbe 0x7010a4e8
lea esi, [ebp - 0x5c]
mov dword [esp + 4], 0x42
mov dword [esp], esi
mov ecx, dword [ebp + 8]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
mov ebx, 0x42
cmp edx, 0x42
push edi
push edi
jne 0x7010a4de
mov ecx, dword [ebp + 8]
mov dword [esp], 0x42
call fcn.700a905c
push ecx
jmp 0x7010a554
xor eax, eax
mov edi, esi
mov ecx, ebx
rep stosb byte es:[edi], al
jmp 0x7010a554
mov dword [esp], 0x40
mov ecx, dword [ebp + 8]
call fcn.7015bbf8
mov ebx, 0x40
test al, al
push edx
jne 0x7010a513
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov esi, dword [ebp + 8]
sub eax, dword [esi + 8]
mov ebx, eax
lea edi, [ebp - 0x5c]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov ecx, dword [ebp + 8]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
mov ecx, 0x42
sub ecx, ebx
add ebx, edi
push eax
mov edi, ebx
push eax
xor eax, eax
rep stosb byte es:[edi], al
mov dword [esp], 0x40
mov ecx, dword [ebp + 8]
call fcn.700a905c
push eax
mov ax, word [ebp - 0x1e]
mov word [ebp - 0x1c], ax
mov word [ebp - 0x1e], 0x20ab
movzx edi, word [ebp - 0xd0]
imul ebx, edi, 0x68
mov eax, dword [ebp - 0xcc]
mov dword [esp], 0
lea esi, [eax + ebx + 0x7641c]
mov ecx, esi
call method.OpenMPT::ModSample.Initialize_OpenMPT::MODTYPE_
mov ecx, esi
push eax
call method.OpenMPT::ModSample.Set16BitCuePoints__
lea eax, [ebp - 0x3c]
mov dword [esp + 0xc], 0xc
mov dword [esp + 8], eax
lea eax, [ebp - 0xa4]
mov dword [esp], eax
mov dword [esp + 4], 2
call method.OpenMPT::mpt::String::detail.ReadStringBuffer_abi:cxx11__OpenMPT::mpt::String::ReadWriteMode__char_const__unsigned_int_
mov eax, dword [ebp - 0xcc]
lea eax, [eax + ebx + 0x76447]
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xa4]
mov dword [esp], eax
mov dword [ebp - 0xb8], 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_
lea ecx, [ebp - 0xa4]
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
cmp eax, ecx
jbe 0x7010a68f
add ebx, dword [ebp - 0xcc]
sub eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebx + 0x76428], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 0x7641c], eax
cmp eax, ecx
jae 0x7010a611
mov ecx, eax
imul eax, edi, 0x68
add eax, dword [ebp - 0xcc]
mov dword [eax + 0x7642c], ecx
movzx ecx, byte [ebp - 0x20]
mov word [eax + 0x7643a], cx
movzx ecx, word [ebp - 0x1e]
mov dword [eax + 0x76434], ecx
mov eax, dword [ebp - 0x1c]
test ax, ax
je 0x7010a65c
fld dword [0x702b4660]
mov word [ebp - 0xd8], ax
mov ecx, esi
fidivr word [ebp - 0xd8]
fstp qword [esp]
call method.OpenMPT::ModSample.Transpose_double_
push ebx
push ebx
mov al, byte [ebp - 0x1f]
test al, 8
je 0x7010a668
or word [esi + 0x22], 8
test al, 0x10
je 0x7010a671
or word [esi + 0x22], 0x10
test al, 4
je 0x7010a68f
imul eax, edi, 0x68
or word [esi + 0x22], 1
add eax, dword [ebp - 0xcc]
shr dword [eax + 0x76428], 1
shr dword [eax + 0x7642c], 1
lea ebx, [ebp - 0xa4]
lea eax, [ebp - 0x5c]
add edi, 0x7384
mov dword [esp + 0xc], 0x20
mov dword [esp + 8], eax
mov dword [esp + 4], 2
shl edi, 5
mov dword [esp], ebx
call method.OpenMPT::mpt::String::detail.ReadStringBuffer_abi:cxx11__OpenMPT::mpt::String::ReadWriteMode__char_const__unsigned_int_
add edi, dword [ebp - 0xcc]
lea ecx, [ebp - 0xbc]
mov dword [esp], ebx
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], 0x20
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_
push ecx
mov ecx, ebx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
inc word [ebp - 0xd0]
jmp 0x7010a48b
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp + 8]
movzx ebx, byte [eax + 0x76418]
mov esi, dword [eax + 0x76408]
mov dword [esp], 0x100
call fcn.7015bbf8
test al, al
push edx
je 0x7010a7be
imul ebx, ebx, 0x2c
add ebx, esi
mov word [ebp - 0x5c], 0xffff
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov esi, edx
sub esi, eax
mov ecx, esi
sar ecx, 1
cmp esi, 0x1ff
ja 0x7010a761
lea eax, [ebp - 0x5c]
mov dword [esp], edx
mov dword [esp + 8], eax
mov eax, 0x100
sub eax, ecx
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 0x7010a775
cmp ecx, 0x100
je 0x7010a775
add eax, 0x200
cmp edx, eax
je 0x7010a775
mov dword [ebx + 4], eax
mov esi, dword [ebx + 4]
mov ebx, dword [ebx]
cmp esi, ebx
je 0x7010a7be
lea eax, [ebp - 0x5c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader4ReadIhN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursorFile
test al, al
jne 0x7010a798
mov byte [ebp - 0x5c], 0
movzx eax, byte [ebp - 0x5c]
cmp ax, 0xff
jne 0x7010a7a9
mov word [ebx], 0xffff
jmp 0x7010a7b9
cmp ax, 0xfe
je 0x7010a7b4
mov word [ebx], ax
jmp 0x7010a7b9
mov word [ebx], 0xfffe
add ebx, 2
jmp 0x7010a77a
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
movzx eax, al
inc eax
cmp ax, 0x7f
ja 0x7010ae31
mov edi, dword [ebp - 0xcc]
mov word [edi + 0x753bc], ax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
xor edx, edx
movzx eax, al
inc eax
mov word [ebp - 0xe2], ax
mov eax, dword [ebp - 0xcc]
cmp dx, word [eax + 0x753bc]
jae 0x7010a8b3
movzx eax, dx
lea esi, [ebp - 0x53]
mov dword [ebp - 0xd0], eax
mov edi, esi
xor eax, eax
mov ecx, 5
rep stosd dword es:[edi], eax
movzx ebx, dx
shl ebx, 5
mov ecx, 5
add ebx, dword [ebp - 0xcc]
mov dword [ebx + 0x7541c], 0x400080
lea edi, [ebx + 0x75421]
mov dword [ebx + 0x75418], 0
mov byte [ebx + 0x75420], 0
cmp byte [ebp - 0x7e], 0x32
rep movsd dword es:[edi], dword [esi]
jbe 0x7010a88a
mov eax, dword [ebp + 8]
mov dword [ebp - 0xd0], edx
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov edx, dword [ebp - 0xd0]
shl eax, 4
and ax, 0xf0
add eax, 8
mov word [ebx + 0x7541c], ax
jmp 0x7010a8ad
mov ecx, 0xc0
test dl, 1
jne 0x7010a899
mov ecx, 0x40
movzx eax, dx
shl eax, 5
mov edi, dword [ebp - 0xcc]
mov word [edi + eax + 0x7541c], cx
inc edx
jmp 0x7010a7fc
mov eax, dword [ebp - 0xcc]
xor ebx, ebx
add eax, 0x763f8
mov dword [ebp - 0xd8], eax
movzx eax, word [ebp - 0xe2]
mov ecx, dword [ebp - 0xd8]
mov dword [esp], eax
call method.OpenMPT::CPatternContainer.ResizeArray_unsigned_short_
push eax
mov dword [esp + 4], 0x40
mov dword [esp], ebx
mov ecx, dword [ebp - 0xd8]
call method.OpenMPT::CPatternContainer.Insert_unsigned_short__unsigned_int_
test al, al
push edi
push edi
je 0x7010ae31
inc ebx
cmp word [ebp - 0xe2], bx
ja 0x7010a8dc
mov word [ebp - 0xd4], 0
mov eax, dword [ebp - 0xcc]
movzx ebx, word [eax + 0x753bc]
cmp bx, word [ebp - 0xd4]
jbe 0x7010ac94
xor eax, eax
lea edi, [ebp - 0x5c]
mov ecx, 6
mov dword [ebp - 0xe0], 0
rep stosb byte es:[edi], al
movzx eax, word [ebp - 0xd4]
imul eax, eax, 6
mov dword [ebp - 0xe8], eax
mov dword [esp], 5
mov ecx, dword [ebp + 8]
call fcn.7015bbf8
test al, al
push esi
je 0x7010ab08
mov ebx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xcc]
shl ebx, 6
add ebx, dword [eax + 0x763f8]
mov ecx, ebx
call method.OpenMPT::CPattern.GetNumChannels___const
mov eax, dword [ebp - 0xe8]
add eax, dword [ebx]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 8]
mov edi, 1
mov dword [esp], eax
movzx esi, byte [ebp - 0x7e]
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
cmp al, 0xfc
jne 0x7010a9cb
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadUint8IN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCursor
lea ecx, [eax - 1]
xor edx, edx
cmp cl, 0x3b
ja 0x7010a9d8
lea edx, [eax + 0x24]
lea eax, [ebp - 0xa4]
mov byte [ebp - 0x5c], dl
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadArrayIhLj4EN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileC
mov eax, dword [ebp - 0xa4]
movzx ebx, ah
mov edx, eax
mov ecx, eax
shr ecx, 0x18
mov byte [ebp - 0x5b], al
shr edx, 0x10
mov eax, ebx
mov dword [ebp - 0xec], ecx
and eax, 0xf
movzx edx, dl
mov ecx, esi
call method.OpenMPT.TranslateULTCommands_unsigned_char__unsigned_char__unsigned_char_
mov ecx, esi
mov word [ebp - 0xbc], ax
movzx edx, byte [ebp - 0xec]
movzx eax, bl
sar eax, 4
call method.OpenMPT.TranslateULTCommands_unsigned_char__unsigned_char__unsigned_char_
movzx ecx, byte [ebp - 0xbc]
mov word [ebp - 0xa4], ax
cmp cl, 0xa
jne 0x7010ab41
movzx esi, byte [ebp - 0xbb]
cmp al, 0xa
je 0x7010ab14
shl esi, 2
mov edx, esi
cmp esi, 0xff
jle 0x7010aa6e
mov edx, 0xff
mov byte [ebp - 0xbb], dl
cmp esi, 0xff
jle 0x7010abad
movzx eax, al
mov dword [esp], eax
call method.OpenMPT::ModCommand.GetEffectWeight_OpenMPT::EffectCommand_
mov dword [esp], 0xa
mov ebx, eax
call method.OpenMPT::ModCommand.GetEffectWeight_OpenMPT::EffectCommand_
cmp ebx, eax
jae 0x7010abad
mov eax, edi
mov word [ebp - 0x5a], 0xa0f
movzx edi, al
mov eax, esi
xchg al, ah
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0xd0]
add eax, edi
cmp eax, 0x40
jbe 0x7010ac5a
mov edi, 0x40
sub edi, dword [ebp - 0xd0]
mov edx, edi
dec edx
cmp edx, 0xffffffff
jne 0x7010ac67
add dword [ebp - 0xd0], edi
cmp dword [ebp - 0xd0], 0x3f
jbe 0x7010a99b
inc dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe0]
cmp word [ebp - 0xe2], di
ja 0x7010a94f
inc word [ebp - 0xd4]
jmp 0x7010a90f
movzx eax, byte [ebp - 0xa3]
shl eax, 8
mov byte [ebp - 0x59], 0xa
or eax, esi
sar eax, 6
mov byte [ebp - 0x57], al
cmp eax, 0xff
jle 0x7010ac50
mov byte [ebp - 0x5a], 0xf
mov byte [ebp - 0x58], ah
jmp 0x7010ac50
cmp al, 0xa
jne 0x7010aba2
movzx edx, byte [ebp - 0xa3]
lea esi, [edx*4]
mov eax, esi
cmp esi, 0xff
jle 0x7010ab62
mov eax, 0xff
mov byte [ebp - 0xa3], al
cmp esi, 0xff
jle 0x7010abad
mov dword [esp], ecx
call method.OpenMPT::ModCommand.GetEffectWeight_OpenMPT::EffectCommand_
mov dword [esp], 0xa
mov ebx, eax
call method.OpenMPT::ModCommand.GetEffectWeight_OpenMPT::EffectCommand_
cmp ebx, eax
jae 0x7010abad
mov eax, edi
mov edx, esi
xchg dl, dh
movzx edi, al
mov word [ebp - 0x5a], 0xa0f
mov word [ebp - 0x58], dx
jmp 0x7010aab4
cmp cl, al
jne 0x7010abad
mov byte [ebp - 0xa4], 0
mov al, byte [ebp - 0xa4]
cmp al, 0xd
je 0x7010abc4
test al, al
jne 0x7010abee
cmp byte [ebp - 0xbc], 0xd
je 0x7010abee
mov dl, byte [ebp - 0xbc]
mov byte [ebp - 0xbc], al
mov byte [ebp - 0xa4], dl
mov al, byte [ebp - 0xbb]
mov dl, byte [ebp - 0xa3]
mov byte [ebp - 0xa3], al
mov byte [ebp - 0xbb], dl
lea eax, [ebp - 0xbc]
lea edx, [ebp - 0xbb]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
lea edx, [ebp - 0xa3]
lea eax, [ebp - 0xa4]
mov dword [esp + 4], edx
mov dword [esp], eax
call method.OpenMPT::ModCommand.CombineEffects_OpenMPT::EffectCommand__unsigned_char__OpenMPT::EffectCommand__unsigned_char_
lea ecx, [ebp - 0x5c]
movzx eax, byte [ebp - 0xa3]
mov dword [esp + 0xc], eax
movzx eax, byte [ebp - 0xa4]
mov dword [esp + 8], eax
movzx eax, byte [ebp - 0xbb]
mov dword [esp + 4], eax
movzx eax, byte [ebp - 0xbc]
mov dword [esp], eax
call method.OpenMPT::ModCommand.FillInTwoCommands_OpenMPT::EffectCommand__unsigned_char__OpenMPT::EffectCommand__unsigned_char_
sub esp, 0x10
mov eax, edi
movzx edi, al
jmp 0x7010aab4
test edi, edi
jne 0x7010aad0
jmp 0x7010aaef
mov esi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x5c]
mov dword [esi], eax
mov eax, dword [ebp - 0x58]
mov word [esi + 4], ax
mov eax, dword [ebp - 0xcc]
movzx eax, word [eax + 0x753bc]
imul eax, eax, 6
add dword [ebp - 0xdc], eax
jmp 0x7010aad2
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov word [ebp - 0x48], bx
mov word [ebp - 0x46], 0
mov byte [ebp - 0x44], 0
call method.std::vector_bool__std::allocator_bool___.size___const
cmp ebx, eax
jae 0x7010acfe
mov eax, dword [ebp - 0x5c]
mov dword [esp], ebx
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], 0
call method.std::_Bit_iterator.operator_int__const
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
push ebx
jmp 0x7010ad93
lea ecx, [ebp - 0x5c]
call method.std::vector_bool__std::allocator_bool___.size___const
mov edx, dword [ebp - 0x54]
sub ebx, eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xa4]
mov dword [esp + 4], eax
lea eax, [ebp - 0xbc]
mov edi, dword [ebp - 0x50]
mov dword [esp], eax
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xa0], 0
call method.std.operator__std::_Bit_iterator_base_const__std::_Bit_iterator_base_const_
mov edx, dword [ebp - 0xd0]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp], edx
mov dword [esp + 4], edi
lea ecx, [ebp - 0x5c]
mov esi, eax
call method.std::vector_bool__std::allocator_bool___._M_fill_insert_std::_Bit_iterator__unsigned_int__bool_
sub esp, 0x10
lea ecx, [ebp - 0xa4]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xa0], 0
mov dword [esp], esi
mov dword [ebp - 0xa4], eax
call method.std::_Bit_iterator.operator_int__const
push ecx
lea ebx, [ebp - 0x5c]
mov ecx, dword [ebp - 0xd8]
mov dword [esp], ebx
call method.void_OpenMPT::CPatternContainer::ForEachModCommand_OpenMPT.PostFixUltCommands__OpenMPT::PostFixUltCommands_
mov ecx, ebx
push edx
call method.std::_Bvector_base_std::allocator_bool___._M_deallocate__
test byte [ebp + 0xc], 2
je 0x7010ae5d
mov ebx, 1
jmp 0x7010adc9
mov eax, dword [ebp - 0xcc]
cmp bx, word [eax + 0x753be]
ja 0x7010ae5d
movzx edx, bx
imul edx, edx, 0x68
lea ecx, [ebp - 0x5c]
mov word [ebp - 0x5b], 1
mov ax, word [eax + edx + 0x7643e]
mov byte [ebp - 0x59], 0
mov word [ebp - 0xd0], ax
and eax, 1
cmp ax, 1
sbb eax, eax
inc ebx
and eax, 0xfffffff8
add eax, 0x10
mov byte [ebp - 0x5c], al
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xcc]
lea eax, [eax + edx + 0x7641c]
mov dword [esp], eax
call sym.__ZNK7OpenMPT8SampleIO10ReadSampleERNS_9ModSampleERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataEN
push eax
push eax
jmp 0x7010adc9
mov byte [ebp - 0xd1], 0
jmp 0x7010ae5d
mov al, byte [ebp - 0xd1]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8