Function at 0x700cbd00
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x90]
sub esp, 0xdc
mov dword [ebp - 0xac], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc0], eax
mov ecx, esi
mov eax, dword [ebp + 0x10]
mov dword [esi + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], 0xc
mov dword [ebp - 0xc4], eax
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
cmp edx, 0xc
push edi
push edi
jne 0x700cc65d
mov ecx, esi
mov dword [esp], 0xc
call fcn.700a905c
push ecx
mov dword [esp + 8], 4
mov dword [esp + 4], str.FORM
mov dword [esp], ebx
call sym._memcmp
test eax, eax
jne 0x700cc65d
lea edi, [ebp - 0x88]
mov dword [esp + 8], 4
mov dword [esp + 4], str.8SVX
mov dword [esp], edi
call sym._memcmp
test eax, eax
je 0x700cbdde
mov dword [esp + 8], 4
mov dword [esp + 4], str.16SV
mov dword [esp], edi
call sym._memcmp
test eax, eax
je 0x700cbdde
mov dword [esp + 8], 4
mov dword [esp + 4], str.MAUD
mov dword [esp], edi
call sym._memcmp
test eax, eax
jne 0x700cc65d
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov dword [esp], 8
mov ecx, esi
call fcn.7015bbf8
mov bl, al
push edx
test al, al
je 0x700cbea1
lea eax, [ebp - 0x34]
mov dword [esp + 8], 2
mov dword [esp + 4], esi
mov dword [esp], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader13ReadNextChunkIN7OpenMPT8IFFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDa
mov ecx, dword [ebp - 0x98]
lea ebx, [ebp - 0x2c]
cmp ecx, dword [ebp - 0x94]
je 0x700cbe5d
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
mov dword [ecx + 4], edx
mov dword [ecx], eax
add ecx, 8
mov dword [esp], ebx
call fcn.700a9534
add dword [ebp - 0x98], 0x1c
push eax
jmp 0x700cbe74
lea eax, [ebp - 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea ecx, [ebp - 0x9c]
call sym.__ZNSt6vectorIN3mpt14mpt_libopenmpt2IO10FileReader5ChunkIN7OpenMPT8IFFChunkENS5_6detail10FileReaderINS2_24FileCursorTraitsFile
push eax
push eax
lea ecx, [ebp - 0x2c]
call fcn.700aa414
jmp 0x700cbdfc
lea ecx, [ebp - 0x84]
call fcn.700a9ee4
mov dword [esp + 8], 4
mov dword [esp + 4], str.MAUD
mov dword [esp], edi
mov dword [ebp - 0xa0], 0x10108
call sym._memcmp
test eax, eax
lea eax, [ebp - 0x9c]
jne 0x700cc0b0
mov dword [esp + 4], 0x4d484452
mov dword [esp], eax
lea ecx, [ebp - 0x34]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8IFFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
push eax
lea esi, [ebp - 0x70]
push eax
lea eax, [ebp - 0x9c]
mov dword [esp + 4], 0x4d444154
mov dword [esp], eax
mov ecx, esi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8IFFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
push eax
lea ecx, [ebp - 0x84]
push eax
mov dword [esp], esi
call fcn.700aa4bc
mov ecx, esi
push eax
call fcn.700aa414
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx]
mov dword [esp + 4], 0x20
mov dword [esp], 0
call dword [eax + 0x20]
push edi
test al, al
push edi
je 0x700cc0a8
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx]
mov dword [esp + 4], 1
mov dword [esp], 0x20
call dword [eax + 0x20]
push esi
test al, al
push esi
jne 0x700cc0a8
lea ecx, [ebp - 0x84]
call fcn.7015bc20
test al, al
je 0x700cc0a8
lea esi, [ebp - 0x34]
mov dword [esp], esi
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [esp], esi
mov dword [ebp - 0xbc], eax
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEItN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [esp], 2
mov ecx, esi
mov edi, eax
call fcn.700a905c
push ecx
mov dword [esp], esi
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
mov dword [esp], 8
mov ecx, esi
mov dword [ebp - 0xb4], eax
call fcn.7015bbf8
test al, al
push edx
lea eax, [ebp - 0x48]
jne 0x700cbfd8
xor edx, edx
lea ecx, [ebp - 0x40]
mov word [eax], dx
add eax, 2
cmp eax, ecx
jne 0x700cbfcc
jmp 0x700cbfed
mov dword [esp], eax
mov dword [esp + 4], 8
lea ecx, [ebp - 0x34]
call fcn.700a9094
push eax
push eax
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov edx, eax
mov ecx, esi
xchg al, ah
shr edx, 0x10
shr ecx, 0x10
mov word [ebp - 0xb0], ax
test ax, ax
je 0x700cc0a8
rol si, 8
xchg dl, dh
movzx edx, dx
movzx eax, si
inc edx
cmp eax, edx
jne 0x700cc0a8
cmp si, 2
jne 0x700cc031
mov byte [ebp - 0x9f], 2
cmp di, 8
jne 0x700cc065
xchg cl, ch
test cx, cx
jne 0x700cc047
mov byte [ebp - 0x9d], 1
jmp 0x700cc076
cmp cx, 2
jne 0x700cc056
mov byte [ebp - 0x9d], 0x11
jmp 0x700cc076
cmp cx, 3
jne 0x700cc0a8
mov byte [ebp - 0x9d], 0x10
jmp 0x700cc076
cmp di, 0x10
jne 0x700cc0a8
test ecx, ecx
jne 0x700cc0a8
mov byte [ebp - 0xa0], 0x10
movzx ecx, word [ebp - 0xb0]
mov eax, dword [ebp - 0xb4]
xor edx, edx
div ecx
lea ecx, [ebp - 0x34]
mov dword [ebp - 0xb4], eax
xor esi, esi
call fcn.700aa414
xor edi, edi
mov dword [ebp - 0xb8], 0
jmp 0x700cc23e
lea ecx, [ebp - 0x34]
jmp 0x700cc19c
mov dword [esp + 4], 0x56484452
mov dword [esp], eax
lea ecx, [ebp - 0x70]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8IFFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
push eax
lea edi, [ebp - 0x9c]
push eax
lea ecx, [ebp - 0x5c]
mov dword [esp + 4], 0x4348414e
mov dword [esp], edi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8IFFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
push eax
lea esi, [ebp - 0x48]
push eax
mov ecx, esi
mov dword [esp + 4], 0x424f4459
mov dword [esp], edi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8IFFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
push eax
lea ecx, [ebp - 0x84]
push eax
mov dword [esp], esi
call fcn.700aa4bc
mov ecx, esi
push eax
call fcn.700aa414
lea ecx, [ebp - 0x84]
call fcn.7015bc20
test al, al
je 0x700cc191
lea ecx, [ebp - 0x70]
call fcn.7015bc20
test al, al
je 0x700cc191
lea esi, [ebp - 0x34]
mov dword [esp + 4], 0x14
mov dword [esp], esi
lea ecx, [ebp - 0x70]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push edi
cmp edx, 0x14
push edi
jne 0x700cc186
mov dword [esp], 0x14
lea ecx, [ebp - 0x70]
call fcn.700a905c
lea eax, [ebp - 0x88]
push ebx
mov dword [esp + 8], 4
mov dword [esp + 4], str.8SVX
mov dword [esp], eax
call sym._memcmp
test eax, eax
lea eax, [ebp - 0x5c]
setne bl
mov dword [esp], eax
inc ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
jmp 0x700cc1a6
mov ecx, 5
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x5c]
call fcn.700aa414
lea ecx, [ebp - 0x70]
call fcn.700aa414
jmp 0x700cc645
cmp eax, 6
mov al, bl
sete dl
inc edx
imul eax, edx
cmp bl, 2
jne 0x700cc1be
mov byte [ebp - 0xa0], 0x10
cmp dl, 2
jne 0x700cc1ca
mov byte [ebp - 0x9f], 3
mov edi, dword [ebp - 0x34]
xor edx, edx
bswap edi
movzx ebx, al
mov ecx, dword [ebp - 0x2c]
mov eax, edi
div ebx
bswap ecx
mov esi, dword [ebp - 0x30]
mov edi, eax
bswap esi
cmp ecx, 0x20
jbe 0x700cc1f9
cmp esi, ecx
jbe 0x700cc1f9
xor edx, edx
mov eax, esi
div ecx
test edx, edx
mov eax, ecx
je 0x700cc1fb
mov eax, esi
xor edx, edx
mov esi, dword [ebp - 0x24]
div ebx
mov dword [ebp - 0xb8], eax
lea ecx, [ebp - 0x84]
movzx eax, word [ebp - 0x28]
xchg al, ah
movzx eax, ax
mov dword [ebp - 0xb4], eax
bswap esi
call fcn.7015bc40
xor edx, edx
lea ecx, [ebp - 0x5c]
div ebx
mov dword [ebp - 0xbc], eax
call fcn.700aa414
lea ecx, [ebp - 0x70]
call fcn.700aa414
movzx ebx, word [ebp - 0xc0]
mov ecx, dword [ebp - 0xac]
mov dword [esp], ebx
call method.OpenMPT::CSoundFile.DestroySampleThreadsafe_unsigned_short_
imul eax, ebx, 0x68
mov edx, dword [ebp - 0xac]
push ecx
mov dword [esp], 0
lea eax, [edx + eax + 0x7641c]
mov ecx, eax
mov dword [ebp - 0xb0], eax
call method.OpenMPT::ModSample.Initialize_OpenMPT::MODTYPE_
push edx
mov ecx, dword [ebp - 0xb8]
imul edx, ebx, 0x68
add edx, dword [ebp - 0xac]
add ecx, edi
mov eax, dword [ebp - 0xbc]
mov dword [edx + 0x76420], edi
add edi, 4
mov dword [edx + 0x7641c], eax
mov dword [edx + 0x76424], ecx
cmp ecx, edi
jbe 0x700cc2b5
cmp ecx, eax
ja 0x700cc2b5
or word [edx + 0x7643e], 2
imul eax, ebx, 0x68
mov edi, dword [ebp - 0xac]
cmp dword [ebp - 0xb4], 1
jbe 0x700cc2d6
mov edx, dword [ebp - 0xb4]
mov dword [edi + eax + 0x76434], edx
jmp 0x700cc2e1
mov dword [edi + eax + 0x76434], 0x5622
sub esi, 0xffffff80
shr esi, 8
lea eax, [esi - 1]
cmp ax, 0xff
ja 0x700cc303
imul eax, ebx, 0x68
mov edi, dword [ebp - 0xac]
mov word [edi + eax + 0x7643a], si
jmp 0x700cc316
imul eax, ebx, 0x68
mov edi, dword [ebp - 0xac]
mov word [edi + eax + 0x7643a], 0x100
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xb0]
mov eax, dword [eax + 0x753b4]
mov dword [esp], 0x20
mov dword [esp + 4], eax
call method.OpenMPT::ModSample.Convert_OpenMPT::MODTYPE__OpenMPT::MODTYPE_
push eax
lea ecx, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x9c]
mov dword [esp + 4], 0x4e414d45
mov dword [esp], eax
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8IFFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
lea ecx, [ebp - 0x5c]
push eax
push eax
call fcn.7015bc20
test al, al
lea esi, [ebx + 0x7384]
je 0x700cc3dd
lea ecx, [ebp - 0x5c]
call fcn.7015bc40
mov dword [esp + 4], eax
lea eax, [ebp - 0x5c]
shl esi, 5
mov dword [esp], eax
lea ecx, [ebp - 0x48]
add esi, dword [ebp - 0xac]
call fcn.700a8ee8
lea ecx, [ebp - 0x48]
push eax
push eax
call fcn.7015b9c0
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x6c], eax
lea edi, [ebp - 0x34]
lea eax, [ebp - 0x70]
mov ecx, edi
mov dword [esp], eax
mov byte [ebp - 0x68], 2
call method.OpenMPT::mpt::StringModeBufRefImpl_char_const_::operator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char______const
push eax
mov ecx, esi
mov dword [esp], edi
call method.mpt::mpt_libopenmpt::charbuf_32u_.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, edi
push eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea ecx, [ebp - 0x40]
call fcn.701c71b4
jmp 0x700cc40b
lea edi, [ebp - 0x34]
mov dword [esp], 0x702b57ee
mov ecx, edi
call fcn.701fd374
shl esi, 5
mov eax, dword [ebp - 0xac]
push ecx
mov dword [esp], edi
lea ecx, [eax + esi]
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 esi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea eax, [ebp - 0x84]
lea ecx, [ebp - 0xa0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call sym.__ZNK7OpenMPT8SampleIO10ReadSampleERNS_9ModSampleERNS_6detail10FileReaderIN3mpt14mpt_libopenmpt2IO24FileCursorTraitsFileDataEN
push edx
cmp byte [ebp - 0xc4], 0
push edx
je 0x700cc61d
lea eax, [ebp - 0x88]
mov dword [esp + 8], 4
mov dword [esp + 4], str.16SV
mov dword [esp], eax
call sym._memcmp
test eax, eax
jne 0x700cc61d
mov eax, dword [ebp - 0xb0]
mov edx, 0xffff8000
mov edi, 0x7fff
mov ecx, 0xffff8000
test byte [eax + 0x22], 0x40
setne al
imul ebx, ebx, 0x68
add ebx, dword [ebp - 0xac]
inc eax
mov byte [ebp - 0xc9], al
mov eax, dword [ebx + 0x7641c]
mov dword [ebp - 0xc4], eax
movzx eax, byte [ebp - 0xc9]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebx + 0x76430]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xc4]
imul eax, dword [ebp - 0xb8]
add eax, eax
mov ebx, 0x7fff
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc0], eax
mov esi, dword [ebp - 0xc8]
cmp dword [ebp - 0xc0], esi
je 0x700cc51e
mov eax, dword [ebp - 0xc0]
movsx esi, word [eax]
mov eax, esi
xchg al, ah
cmp ebx, esi
jle 0x700cc502
mov ebx, esi
cmp ecx, esi
jge 0x700cc508
mov ecx, esi
cwde
cmp edi, eax
jle 0x700cc50f
mov edi, eax
cmp edx, eax
jge 0x700cc515
mov edx, eax
add dword [ebp - 0xc0], 2
jmp 0x700cc4e1
mov eax, ebx
mov dword [ebp - 0x34], 1
neg eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
lea eax, [ebp - 0x30]
inc ebx
jl 0x700cc538
lea eax, [ebp - 0x34]
cmp ecx, dword [eax]
jle 0x700cc53f
lea eax, [ebp - 0x2c]
mov ecx, dword [eax]
mov eax, edi
neg eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x2c], edx
lea eax, [ebp - 0x30]
inc edi
jl 0x700cc55b
lea eax, [ebp - 0x34]
cmp edx, dword [eax]
jle 0x700cc562
lea eax, [ebp - 0x2c]
fld1
mov dword [ebp - 0xc0], ecx
xor edx, edx
fld st(0)
fidiv dword [ebp - 0xc0]
fxch st(1)
fidiv dword [eax]
mov eax, dword [ebp - 0xb8]
add eax, eax
mov dword [ebp - 0xc0], eax
fldz
fld st(0)
lea ecx, [edx + edx]
mov ebx, dword [ebp - 0xc4]
add ecx, dword [ebp - 0xb4]
xor eax, eax
test ebx, ebx
je 0x700cc5ee
movsx edi, word [ecx]
mov esi, edi
mov word [ebp - 0xb8], di
sub esi, eax
xchg al, ah
mov dword [ebp - 0xd0], esi
mov esi, dword [ebp - 0xb8]
fld st(3)
fimul dword [ebp - 0xd0]
add ecx, dword [ebp - 0xc0]
rol si, 8
fmul st(0)
dec ebx
cwde
movsx esi, si
faddp st(1)
sub esi, eax
mov dword [ebp - 0xb8], esi
mov eax, edi
fld st(2)
fimul dword [ebp - 0xb8]
fmul st(0)
faddp st(2)
jmp 0x700cc59b
inc edx
cmp byte [ebp - 0xc9], dl
ja 0x700cc58a
fstp st(2)
fstp st(2)
fcompp
fnstsw ax
sahf
jbe 0x700cc61d
mov edi, dword [ebp - 0xbc]
cmp dword [ebp - 0xc8], edi
je 0x700cc61d
rol word [edi], 8
add dword [ebp - 0xbc], 2
jmp 0x700cc602
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0xb0]
call method.OpenMPT::ModSample.PrecomputeLoops_OpenMPT::CSoundFile__bool_
lea ecx, [ebp - 0x5c]
push eax
push eax
call fcn.700aa414
mov bl, 1
lea ecx, [ebp - 0x84]
call fcn.700aa414
lea ecx, [ebp - 0x9c]
call fcn.701ed294
jmp 0x700cc6ab
xor ebx, ebx
jmp 0x700cc6ab
lea esp, [ebp - 0xc]
mov al, bl
pop ebx
pop esi
pop edi
pop ebp
ret 0xc