Function at 0x62937b44
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 0x629384aa
mov ecx, esi
mov dword [esp], 0xc
call fcn.62924a94
push ecx
mov dword [esp + 8], 4
mov dword [esp + 4], str.FORM
mov dword [esp], ebx
call sym._memcmp
test eax, eax
jne 0x629384aa
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 0x62937c22
mov dword [esp + 8], 4
mov dword [esp + 4], str.16SV
mov dword [esp], edi
call sym._memcmp
test eax, eax
je 0x62937c22
mov dword [esp + 8], 4
mov dword [esp + 4], str.MAUD
mov dword [esp], edi
call sym._memcmp
test eax, eax
jne 0x629384aa
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov dword [esp], 8
mov ecx, esi
call fcn.629c9c58
mov bl, al
push edx
test al, al
je 0x62937ce5
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 0x62937ca1
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.62924dc8
add dword [ebp - 0x98], 0x1c
push eax
jmp 0x62937cb8
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.62925a58
jmp 0x62937c40
lea ecx, [ebp - 0x84]
call fcn.6292552c
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 0x62937efa
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.62925b00
mov ecx, esi
push eax
call fcn.62925a58
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 0x62937ef2
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 0x62937ef2
lea ecx, [ebp - 0x84]
call fcn.629c9c7c
test al, al
je 0x62937ef2
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 word [ebp - 0xb0], ax
call fcn.62924a94
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.629c9c58
test al, al
push edx
lea eax, [ebp - 0x48]
jne 0x62937e21
xor edx, edx
lea ecx, [ebp - 0x40]
mov word [eax], dx
add eax, 2
cmp eax, ecx
jne 0x62937e15
jmp 0x62937e36
mov dword [esp], eax
mov dword [esp + 4], 8
lea ecx, [ebp - 0x34]
call fcn.62924acc
push eax
push eax
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov edx, eax
mov ecx, esi
shr edx, 0x10
xchg al, ah
shr ecx, 0x10
test ax, ax
je 0x62937ef2
rol si, 8
xchg dl, dh
movzx edx, dx
movzx edi, si
inc edx
cmp edi, edx
jne 0x62937ef2
cmp si, 2
jne 0x62937e73
mov byte [ebp - 0x9f], 2
cmp word [ebp - 0xb0], 8
jne 0x62937eab
xchg cl, ch
test cx, cx
jne 0x62937e8d
mov byte [ebp - 0x9d], 1
jmp 0x62937ec0
cmp cx, 2
jne 0x62937e9c
mov byte [ebp - 0x9d], 0x11
jmp 0x62937ec0
cmp cx, 3
jne 0x62937ef2
mov byte [ebp - 0x9d], 0x10
jmp 0x62937ec0
cmp word [ebp - 0xb0], 0x10
jne 0x62937ef2
test ecx, ecx
jne 0x62937ef2
mov byte [ebp - 0xa0], 0x10
movzx ecx, ax
xor edx, edx
mov eax, dword [ebp - 0xb4]
div ecx
lea ecx, [ebp - 0x34]
mov edi, eax
xor esi, esi
call fcn.62925a58
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
jmp 0x62938088
lea ecx, [ebp - 0x34]
jmp 0x62937fe6
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.62925b00
mov ecx, esi
push eax
call fcn.62925a58
lea ecx, [ebp - 0x84]
call fcn.629c9c7c
test al, al
lea esi, [ebp - 0x5c]
je 0x62937fdc
lea ecx, [ebp - 0x70]
call fcn.629c9c7c
test al, al
je 0x62937fdc
lea eax, [ebp - 0x34]
mov dword [esp + 4], 0x14
mov dword [esp], eax
lea ecx, [ebp - 0x70]
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileCursorINS1_24FileCursorTraitsFileDataENS1_24FileCursorFilenameTraitsINS0_15BasicPathStringIN
push edi
cmp edx, 0x14
push edi
jne 0x62937fd0
mov dword [esp], 0x14
lea ecx, [ebp - 0x70]
call fcn.62924a94
lea eax, [ebp - 0x88]
push ebx
mov dword [esp + 8], 4
mov dword [esp + 4], str.8SVX
mov dword [esp], eax
call sym._memcmp
mov dword [esp], esi
test eax, eax
setne bl
inc ebx
call sym.__ZN3mpt14mpt_libopenmpt2IO10FileReader9ReadIntBEIjN7OpenMPT6detail10FileReaderINS1_24FileCursorTraitsFileDataENS1_24FileCurso
jmp 0x62937ff0
mov ecx, 5
xor eax, eax
lea edi, [ebp - 0x34]
rep stosd dword es:[edi], eax
mov ecx, esi
call fcn.62925a58
lea ecx, [ebp - 0x70]
call fcn.62925a58
jmp 0x62938492
cmp eax, 6
mov al, bl
sete dl
inc edx
imul eax, edx
cmp bl, 2
jne 0x62938008
mov byte [ebp - 0xa0], 0x10
cmp dl, 2
jne 0x62938014
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 dword [ebp - 0xb4], eax
bswap esi
cmp ecx, 0x20
jbe 0x62938047
cmp ecx, esi
jae 0x62938047
xor edx, edx
mov eax, esi
div ecx
test edx, edx
mov eax, ecx
je 0x62938049
mov eax, esi
movzx edi, word [ebp - 0x28]
xor edx, edx
mov esi, dword [ebp - 0x24]
div ebx
rol di, 8
lea ecx, [ebp - 0x84]
mov dword [ebp - 0xb8], eax
movzx edi, di
bswap esi
call fcn.629c9c9c
xor edx, edx
lea ecx, [ebp - 0x5c]
div ebx
mov dword [ebp - 0xbc], eax
call fcn.62925a58
lea ecx, [ebp - 0x70]
call fcn.62925a58
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 eax, dword [ebp - 0xbc]
imul edx, ebx, 0x68
add edx, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xb8]
mov dword [edx + 0x7641c], eax
mov eax, dword [ebp - 0xb4]
add ecx, eax
mov dword [edx + 0x76420], eax
add eax, 4
mov dword [edx + 0x76424], ecx
cmp ecx, eax
jbe 0x62938109
cmp ecx, dword [edx + 0x7641c]
ja 0x62938109
or word [edx + 0x7643e], 2
imul eax, ebx, 0x68
cmp edi, 1
jbe 0x62938120
mov edx, dword [ebp - 0xac]
mov dword [edx + eax + 0x76434], edi
jmp 0x62938131
mov edi, dword [ebp - 0xac]
mov dword [edi + eax + 0x76434], 0x5622
sub esi, 0xffffff80
shr esi, 8
lea eax, [esi - 1]
cmp ax, 0xff
ja 0x62938153
imul eax, ebx, 0x68
mov edi, dword [ebp - 0xac]
mov word [edi + eax + 0x7643a], si
jmp 0x62938166
imul eax, ebx, 0x68
mov edx, dword [ebp - 0xac]
mov word [edx + 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 edi, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x9c]
mov dword [esp + 4], 0x4e414d45
mov dword [esp], eax
mov ecx, edi
call sym.__ZNK3mpt14mpt_libopenmpt2IO10FileReader9ChunkListIN7OpenMPT8IFFChunkENS4_6detail10FileReaderINS1_24FileCursorTraitsFileDataEN
mov ecx, edi
push eax
push eax
call fcn.629c9c7c
test al, al
lea esi, [ebx + 0x7384]
je 0x6293822a
mov ecx, edi
call fcn.629c9c9c
shl esi, 5
mov dword [esp + 4], eax
mov dword [esp], edi
lea ecx, [ebp - 0x48]
add esi, dword [ebp - 0xac]
call fcn.62924924
lea ecx, [ebp - 0x48]
push eax
push eax
call fcn.629c99fc
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.62a334c4
jmp 0x62938258
lea edi, [ebp - 0x34]
mov dword [esp], 0x62b1ff8b
mov ecx, edi
call fcn.62a69d1c
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 0x6293846a
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 0x6293846a
mov eax, dword [ebp - 0xb0]
mov edx, 0xffff8000
mov ecx, 0x7fff
mov esi, 0x7fff
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, 0xffff8000
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 edi, dword [ebp - 0xc8]
cmp dword [ebp - 0xc0], edi
je 0x6293836b
mov eax, dword [ebp - 0xc0]
movsx edi, word [eax]
mov eax, edi
xchg al, ah
cmp esi, edi
jle 0x6293834f
mov esi, edi
cmp ebx, edi
jge 0x62938355
mov ebx, edi
cwde
cmp ecx, eax
jle 0x6293835c
mov ecx, eax
cmp edx, eax
jge 0x62938362
mov edx, eax
add dword [ebp - 0xc0], 2
jmp 0x6293832e
mov eax, esi
mov dword [ebp - 0x34], 1
neg eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ebx
lea eax, [ebp - 0x30]
inc esi
jl 0x62938385
lea eax, [ebp - 0x34]
cmp ebx, dword [eax]
jle 0x6293838c
lea eax, [ebp - 0x2c]
mov ebx, dword [eax]
mov eax, ecx
neg eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x2c], edx
lea eax, [ebp - 0x30]
inc ecx
jl 0x629383a8
lea eax, [ebp - 0x34]
cmp edx, dword [eax]
jle 0x629383af
lea eax, [ebp - 0x2c]
fld1
mov dword [ebp - 0xc0], ebx
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 0x6293843b
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 0x629383e8
inc edx
cmp byte [ebp - 0xc9], dl
ja 0x629383d7
fstp st(2)
fstp st(2)
fcompp
fnstsw ax
sahf
jbe 0x6293846a
mov edx, dword [ebp - 0xbc]
cmp dword [ebp - 0xc8], edx
je 0x6293846a
rol word [edx], 8
add dword [ebp - 0xbc], 2
jmp 0x6293844f
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.62925a58
mov bl, 1
lea ecx, [ebp - 0x84]
call fcn.62925a58
lea ecx, [ebp - 0x9c]
call fcn.62a595cc
jmp 0x629384f8
xor ebx, ebx
jmp 0x629384f8
lea esp, [ebp - 0xc]
mov al, bl
pop ebx
pop esi
pop edi
pop ebp
ret 0xc