Function at 0x700cb228
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1ec
mov dword [ebp - 0x1c4], ecx
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x1c8], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1dc], eax
lea eax, [ebp - 0x1ac]
mov dword [ebx + 8], 0
mov ecx, ebx
mov dword [esp], eax
mov dword [esp + 4], 8
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
cmp edx, 8
push eax
push eax
je 0x700cb281
mov byte [ebp - 0x1bd], 0
jmp 0x700cbcef
mov dword [esp], 8
mov ecx, ebx
call fcn.700a905c
mov byte [ebp - 0x1bd], 0
cmp dword [ebp - 0x1ac], 0x66666163
push edi
jne 0x700cbcef
cmp word [ebp - 0x1a8], 0x100
jne 0x700cbcef
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0
mov dword [esp], 0xc
mov ecx, ebx
call fcn.7015bbf8
mov byte [ebp - 0x1bd], al
push esi
test al, al
lea esi, [ebp - 0x108]
je 0x700cb471
lea ecx, [ebp - 0xfc]
call fcn.700a9ee4
mov dword [esp], esi
mov dword [esp + 4], 0xc
mov ecx, ebx
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push ecx
cmp edx, 0xc
push ecx
jne 0x700cb348
mov dword [esp], 0xc
mov ecx, ebx
call fcn.700a905c
mov eax, dword [ebp - 0x104]
push edx
bswap eax
mov edx, dword [ebp - 0x100]
test eax, eax
bswap edx
jns 0x700cb367
or edx, 0xffffffff
mov eax, 0x7fffffff
jmp 0x700cb367
lea edi, [ebp - 0x128]
mov ecx, 8
xor eax, eax
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x11c]
call fcn.700a9ee4
jmp 0x700cb3e9
mov dword [esp], edx
mov dword [esp + 4], eax
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__long_long__long_long_
lea edi, [ebp - 0x140]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov ecx, edi
call fcn.700a90e0
push eax
lea ecx, [ebp - 0x128]
push eax
lea esi, [ebp - 0x108]
mov dword [esp], edi
call fcn.700a9534
lea edx, [ebp - 0xfc]
mov ecx, edx
push eax
lea eax, [ebp - 0x128]
mov dword [esp], eax
call fcn.700aa4bc
lea ecx, [ebp - 0x128]
push eax
call fcn.700aa414
mov ecx, edi
lea edi, [ebp - 0x128]
call fcn.700aa414
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0xfc]
lea ecx, [ebp - 0x11c]
mov dword [esp], edx
call fcn.700a9534
push eax
lea ecx, [ebp - 0xfc]
lea esi, [ebp - 0x128]
call fcn.700aa414
mov eax, dword [ebp - 0x1a0]
cmp eax, dword [ebp - 0x19c]
je 0x700cb436
mov edi, eax
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
lea ecx, [eax + 0xc]
lea eax, [ebp - 0x11c]
mov dword [esp], eax
call fcn.700a9534
add dword [ebp - 0x1a0], 0x20
push eax
jmp 0x700cb44a
mov dword [esp + 4], esi
mov dword [esp], eax
lea ecx, [ebp - 0x1a4]
call sym.__ZNSt6vectorIN3mpt14mpt_libopenmpt2IO10FileReader5ChunkIN7OpenMPT8CAFChunkENS5_6detail10FileReaderINS2_24FileCursorTraitsFile
push edi
push edi
lea ecx, [ebp - 0x11c]
call fcn.700aa414
jmp 0x700cb2d4
lea eax, [ebp - 0x1a4]
mov dword [esp + 4], 0x64657363
mov dword [esp], eax
mov ecx, esi
call fcn.7015bfa0
push esi
lea eax, [ebp - 0x128]
push esi
lea ecx, [ebp - 0x108]
mov dword [esp], eax
mov dword [esp + 4], 0x20
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push ebx
cmp edx, 0x20
push ebx
jne 0x700cb4c5
mov dword [esp], 0x20
lea ecx, [ebp - 0x108]
call fcn.700a905c
mov bl, 1
push ecx
jmp 0x700cb4d6
lea edi, [ebp - 0x128]
mov ecx, 8
xor eax, eax
xor ebx, ebx
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x108]
call fcn.700aa414
test bl, bl
je 0x700cbc24
mov eax, dword [ebp - 0x124]
bswap eax
mov dword [ebp - 0x1d0], eax
mov eax, dword [ebp - 0x128]
bswap eax
mov dword [ebp - 0x1cc], eax
fld qword [ebp - 0x1d0]
fldz
fcomp st(1)
fnstsw ax
sahf
jae 0x700cbc1e
mov eax, dword [ebp - 0x110]
bswap eax
mov dword [ebp - 0x1d0], eax
dec eax
cmp eax, 1
ja 0x700cbc22
fstp qword [esp]
call sym._round
mov esi, 0xffffffff
fld dword [0x702b598c]
fxch st(1)
fcom st(1)
fnstsw ax
fstp st(1)
mov edi, 0x7fffffff
sahf
jae 0x700cb5a1
fld dword [0x702b5990]
fcomp st(1)
fnstsw ax
mov esi, 0
mov edi, 0x80000000
sahf
jae 0x700cb5a5
fnstcw word [ebp - 0x1ba]
mov ax, word [ebp - 0x1ba]
or ah, 0xc
mov word [ebp - 0x1bc], ax
fldcw word [ebp - 0x1bc]
fistp qword [ebp - 0x1d8]
fldcw word [ebp - 0x1ba]
mov esi, dword [ebp - 0x1d8]
mov edi, dword [ebp - 0x1d4]
jmp 0x700cb5a7
fstp st(0)
jmp 0x700cb5a7
fstp st(0)
mov dword [esp], esi
mov dword [esp + 4], edi
call method.unsigned_int_mpt::mpt_libopenmpt.saturate_cast_unsigned_int__long_long__long_long_
test edi, edi
mov dword [ebp - 0x1d8], eax
jne 0x700cbc24
cmp eax, esi
jne 0x700cbc24
test eax, eax
je 0x700cbc24
cmp dword [ebp - 0x120], 0x6d63706c
mov dword [ebp - 0x1b0], 0x108
jne 0x700cbc24
cmp dword [ebp - 0x114], 0x1000000
jne 0x700cbc24
mov eax, dword [ebp - 0x118]
bswap eax
test eax, eax
je 0x700cbc24
mov edx, dword [ebp - 0x10c]
bswap edx
test edx, edx
je 0x700cbc24
mov ecx, dword [ebp - 0x11c]
bswap ecx
mov esi, ecx
and esi, 1
je 0x700cb648
lea ebx, [edx - 0x20]
and ebx, 0xffffffdf
jne 0x700cbc24
imul edx, dword [ebp - 0x1d0]
shr edx, 3
cmp edx, eax
jne 0x700cbc24
xor edx, edx
div dword [ebp - 0x1d0]
mov ebx, edx
test edx, edx
jne 0x700cbc24
lea edx, [eax - 1]
cmp edx, 3
jbe 0x700cb66b
cmp eax, 8
jne 0x700cbc24
cmp dword [ebp - 0x1d0], 2
sete dl
shl eax, 3
lea edi, [edx + 1]
mov edx, esi
neg edx
shr ecx, 1
mov esi, edx
xor ecx, 1
and esi, 3
mov byte [ebp - 0x1b0], al
mov eax, edi
and ecx, 1
mov byte [ebp - 0x1af], al
mov eax, esi
mov byte [ebp - 0x1ae], cl
cmp byte [ebp - 0x1dc], 0
mov byte [ebp - 0x1ad], al
je 0x700cb6bc
lea ecx, [ebp - 0x1b0]
call method.OpenMPT::SampleIO.MayNormalize__
lea edi, [ebp - 0x1a4]
lea eax, [ebp - 0x16c]
mov dword [esp], 0x696e666f
mov ecx, edi
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], 0
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8CAFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
test al, al
push edx
je 0x700cb847
lea esi, [ebp - 0x158]
mov dword [esp + 4], 0x696e666f
mov dword [esp], edi
mov ecx, esi
call fcn.7015bfa0
push edi
push edi
mov dword [esp], esi
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov esi, eax
cmp ebx, esi
je 0x700cb83c
mov dword [esp], 2
lea ecx, [ebp - 0x158]
call fcn.7015bbf8
test al, al
push ecx
je 0x700cb83c
lea eax, [ebp - 0x140]
lea edx, [ebp - 0x138]
mov dword [esp + 4], eax
lea eax, [ebp - 0x158]
mov dword [ebp - 0x140], edx
mov dword [esp + 8], 0xffffffff
lea edx, [ebp - 0x100]
mov dword [esp], eax
mov dword [ebp - 0x13c], 0
mov byte [ebp - 0x138], 0
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x104], 0
mov byte [ebp - 0x100], 0
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader14ReadNullStringIN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
test al, al
je 0x700cb826
lea eax, [ebp - 0x108]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
lea eax, [ebp - 0x158]
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader14ReadNullStringIN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24File
test al, al
je 0x700cb826
cmp dword [ebp - 0x13c], 0
je 0x700cb80a
cmp dword [ebp - 0x104], 0
je 0x700cb80a
lea eax, [ebp - 0x140]
lea ecx, [ebp - 0x170]
mov dword [esp], eax
call sym.std::map_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::less_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______std::allocator_std::pair_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__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____const_
mov ecx, eax
push edx
lea eax, [ebp - 0x108]
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_assign_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
push edi
lea ecx, [ebp - 0x108]
inc ebx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x700cb72d
lea ecx, [ebp - 0x108]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea ecx, [ebp - 0x158]
call fcn.700aa414
lea ecx, [ebp - 0x108]
call method.OpenMPT::FileTags.FileTags__
mov dword [esp], 0x702b58e4
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea ecx, [ebp - 0x140]
lea edx, [ebp - 0x170]
lea eax, [ebp - 0xc0]
push esi
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], 0x702b5810
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea ecx, [ebp - 0x140]
lea edx, [ebp - 0x170]
lea eax, [ebp - 0xa8]
push ebx
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], str.album
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea edx, [ebp - 0x170]
push ecx
lea eax, [ebp - 0x90]
lea ecx, [ebp - 0x140]
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], str.track_number
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea ecx, [ebp - 0x140]
push edx
lea eax, [ebp - 0x78]
lea edx, [ebp - 0x170]
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], str.year
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea ecx, [ebp - 0x140]
push eax
lea edx, [ebp - 0x170]
lea eax, [ebp - 0x60]
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], str.genre
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea ecx, [ebp - 0x140]
push eax
lea edx, [ebp - 0x170]
lea eax, [ebp - 0x30]
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], 0x702b580a
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea ecx, [ebp - 0x140]
push eax
lea edx, [ebp - 0x170]
lea eax, [ebp - 0xf0]
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], str.comments
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea ecx, [ebp - 0x140]
push eax
lea edx, [ebp - 0x170]
lea eax, [ebp - 0xd8]
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], str.encoding_application
lea ecx, [ebp - 0x140]
call fcn.701fd374
lea ecx, [ebp - 0x140]
push eax
lea edx, [ebp - 0x170]
lea eax, [ebp - 0x108]
call sym.__ZN7OpenMPTL20CAFSetTagFromInfoKeyERNSt7__cxx1112basic_stringIcN3mpt14mpt_libopenmpt20encoding_char_traitsILNS3_15common_enco
lea ecx, [ebp - 0x140]
lea esi, [ebp - 0x1a4]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [esp], 0x64617461
mov ecx, esi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8CAFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
mov byte [ebp - 0x1bd], al
test al, al
push edi
je 0x700cbbfc
lea ebx, [ebp - 0x198]
mov dword [esp + 4], 0x64617461
mov dword [esp], esi
mov ecx, ebx
call fcn.7015bfa0
push esi
mov ecx, ebx
push esi
mov dword [esp], 4
call fcn.700a905c
push ecx
mov ecx, ebx
call fcn.7015bc28
lea esi, [ebp - 0x158]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov ecx, esi
call fcn.700a90e0
push eax
lea ecx, [ebp - 0x184]
push eax
mov dword [esp], esi
call fcn.700a9534
mov ecx, esi
push edx
call fcn.700aa414
lea ecx, [ebp - 0x184]
call fcn.7015bc40
mov ebx, dword [ebp - 0x118]
mov esi, dword [ebp - 0x114]
bswap ebx
xor edx, edx
mov edi, dword [ebp - 0x1c4]
bswap esi
div ebx
imul eax, esi
movzx ebx, word [ebp - 0x1c8]
mov esi, eax
mov dword [esp], ebx
imul eax, ebx, 0x68
mov ecx, edi
lea eax, [edi + eax + 0x7641c]
mov dword [ebp - 0x1d0], eax
call method.OpenMPT::CSoundFile.DestroySampleThreadsafe_unsigned_short_
push eax
mov ecx, dword [ebp - 0x1d0]
mov dword [esp], 0
call method.OpenMPT::ModSample.Initialize_OpenMPT::MODTYPE_
push eax
mov edi, dword [ebp - 0x1d8]
imul eax, ebx, 0x68
add eax, dword [ebp - 0x1c4]
lea ecx, [ebp - 0x1b0]
mov dword [eax + 0x7641c], esi
mov dword [eax + 0x76434], edi
lea eax, [ebp - 0x184]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1d0]
mov dword [esp], eax
call sym.__ZNK7OpenMPT8SampleIO10ReadSampleERNS_9ModSampleERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataEN
push eax
lea esi, [ebp - 0x158]
push eax
lea eax, [ebp - 0x108]
mov dword [esp + 4], eax
mov dword [esp], esi
call method.OpenMPT.GetSampleNameFromTags_abi:cxx11__OpenMPT::FileTags_const_
mov eax, dword [ebp - 0x1c4]
lea edi, [ebp - 0x140]
mov eax, dword [eax + 0x13d068]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.700b2158
lea ecx, [ebx + 0x7384]
mov eax, dword [ebp - 0x1c4]
mov ebx, ecx
mov dword [esp], edi
shl ebx, 5
lea ecx, [eax + ebx]
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, edi
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
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__
mov eax, dword [ebp - 0x1c4]
mov eax, dword [eax + 0x753b4]
mov ecx, dword [ebp - 0x1d0]
mov dword [esp + 4], eax
mov dword [esp], 0x20
call method.OpenMPT::ModSample.Convert_OpenMPT::MODTYPE__OpenMPT::MODTYPE_
push ebx
mov eax, dword [ebp - 0x1c4]
push ebx
mov ecx, dword [ebp - 0x1d0]
mov dword [esp + 4], 0
mov dword [esp], eax
call method.OpenMPT::ModSample.PrecomputeLoops_OpenMPT::CSoundFile__bool_
push ecx
push ecx
lea ecx, [ebp - 0x184]
call fcn.700aa414
lea ecx, [ebp - 0x198]
call fcn.700aa414
lea ecx, [ebp - 0x108]
call method.OpenMPT::FileTags.FileTags____clone_.isra.0_
mov eax, dword [ebp - 0x168]
mov dword [esp], eax
lea ecx, [ebp - 0x170]
call sym.__ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M
push edx
jmp 0x700cbc24
fstp st(0)
jmp 0x700cbc24
fstp st(0)
lea ecx, [ebp - 0x1a4]
call fcn.701ec9c0
jmp 0x700cbcef
mov al, byte [ebp - 0x1bd]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0xc