Function at 0x62938004
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 0x62938961
mov ecx, esi
mov dword [esp], 0xc
call fcn.62924a9c
push ecx
mov dword [esp + 8], 4
mov dword [esp + 4], str.FORM
mov dword [esp], ebx
call sym._memcmp
test eax, eax
jne 0x62938961
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 0x629380e2
mov dword [esp + 8], 4
mov dword [esp + 4], str.16SV
mov dword [esp], edi
call sym._memcmp
test eax, eax
je 0x629380e2
mov dword [esp + 8], 4
mov dword [esp + 4], str.MAUD
mov dword [esp], edi
call sym._memcmp
test eax, eax
jne 0x62938961
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov dword [esp], 8
mov ecx, esi
call fcn.629c8e18
mov bl, al
push edx
test al, al
je 0x629381a5
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 0x62938161
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.62924f74
add dword [ebp - 0x98], 0x1c
push eax
jmp 0x62938178
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.62925e54
jmp 0x62938100
lea ecx, [ebp - 0x84]
call fcn.62925924
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 0x629383b4
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.62925efc
mov ecx, esi
push eax
call fcn.62925e54
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 0x629383ac
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 0x629383ac
lea ecx, [ebp - 0x84]
call fcn.629c8e40
test al, al
je 0x629383ac
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.62924a9c
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.629c8e18
test al, al
push edx
lea eax, [ebp - 0x48]
jne 0x629382dc
xor edx, edx
lea ecx, [ebp - 0x40]
mov word [eax], dx
add eax, 2
cmp eax, ecx
jne 0x629382d0
jmp 0x629382f1
mov dword [esp], eax
mov dword [esp + 4], 8
lea ecx, [ebp - 0x34]
call fcn.62924ad4
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 0x629383ac
rol si, 8
xchg dl, dh
movzx edx, dx
movzx eax, si
inc edx
cmp eax, edx
jne 0x629383ac
cmp si, 2
jne 0x62938335
mov byte [ebp - 0x9f], 2
cmp di, 8
jne 0x62938369
xchg cl, ch
test cx, cx
jne 0x6293834b
mov byte [ebp - 0x9d], 1
jmp 0x6293837a
cmp cx, 2
jne 0x6293835a
mov byte [ebp - 0x9d], 0x11
jmp 0x6293837a
cmp cx, 3
jne 0x629383ac
mov byte [ebp - 0x9d], 0x10
jmp 0x6293837a
cmp di, 0x10
jne 0x629383ac
test ecx, ecx
jne 0x629383ac
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.62925e54
xor edi, edi
mov dword [ebp - 0xb8], 0
jmp 0x62938542
lea ecx, [ebp - 0x34]
jmp 0x629384a0
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.62925efc
mov ecx, esi
push eax
call fcn.62925e54
lea ecx, [ebp - 0x84]
call fcn.629c8e40
test al, al
je 0x62938495
lea ecx, [ebp - 0x70]
call fcn.629c8e40
test al, al
je 0x62938495
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 0x6293848a
mov dword [esp], 0x14
lea ecx, [ebp - 0x70]
call fcn.62924a9c
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 0x629384aa
mov ecx, 5
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x5c]
call fcn.62925e54
lea ecx, [ebp - 0x70]
call fcn.62925e54
jmp 0x62938949
cmp eax, 6
mov al, bl
sete dl
inc edx
imul eax, edx
cmp bl, 2
jne 0x629384c2
mov byte [ebp - 0xa0], 0x10
cmp dl, 2
jne 0x629384ce
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 0x629384fd
cmp esi, ecx
jbe 0x629384fd
xor edx, edx
mov eax, esi
div ecx
test edx, edx
mov eax, ecx
je 0x629384ff
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.629c8e60
xor edx, edx
lea ecx, [ebp - 0x5c]
div ebx
mov dword [ebp - 0xbc], eax
call fcn.62925e54
lea ecx, [ebp - 0x70]
call fcn.62925e54
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 0x629385b9
cmp ecx, eax
ja 0x629385b9
or word [edx + 0x7643e], 2
imul eax, ebx, 0x68
mov edi, dword [ebp - 0xac]
cmp dword [ebp - 0xb4], 1
jbe 0x629385da
mov edx, dword [ebp - 0xb4]
mov dword [edi + eax + 0x76434], edx
jmp 0x629385e5
mov dword [edi + eax + 0x76434], 0x5622
sub esi, 0xffffff80
shr esi, 8
lea eax, [esi - 1]
cmp ax, 0xff
ja 0x62938607
imul eax, ebx, 0x68
mov edi, dword [ebp - 0xac]
mov word [edi + eax + 0x7643a], si
jmp 0x6293861a
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.629c8e40
test al, al
lea esi, [ebx + 0x7384]
je 0x629386e1
lea ecx, [ebp - 0x5c]
call fcn.629c8e60
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.62924928
lea ecx, [ebp - 0x48]
push eax
push eax
call fcn.629c8be0
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.62a32514
jmp 0x6293870f
lea edi, [ebp - 0x34]
mov dword [esp], 0x62b1dd6e
mov ecx, edi
call fcn.62a684e4
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 0x62938921
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 0x62938921
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 0x62938822
mov eax, dword [ebp - 0xc0]
movsx esi, word [eax]
mov eax, esi
xchg al, ah
cmp ebx, esi
jle 0x62938806
mov ebx, esi
cmp ecx, esi
jge 0x6293880c
mov ecx, esi
cwde
cmp edi, eax
jle 0x62938813
mov edi, eax
cmp edx, eax
jge 0x62938819
mov edx, eax
add dword [ebp - 0xc0], 2
jmp 0x629387e5
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 0x6293883c
lea eax, [ebp - 0x34]
cmp ecx, dword [eax]
jle 0x62938843
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 0x6293885f
lea eax, [ebp - 0x34]
cmp edx, dword [eax]
jle 0x62938866
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 0x629388f2
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 0x6293889f
inc edx
cmp byte [ebp - 0xc9], dl
ja 0x6293888e
fstp st(2)
fstp st(2)
fcompp
fnstsw ax
sahf
jbe 0x62938921
mov edi, dword [ebp - 0xbc]
cmp dword [ebp - 0xc8], edi
je 0x62938921
rol word [edi], 8
add dword [ebp - 0xbc], 2
jmp 0x62938906
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.62925e54
mov bl, 1
lea ecx, [ebp - 0x84]
call fcn.62925e54
lea ecx, [ebp - 0x9c]
call fcn.62a58334
jmp 0x629389af
xor ebx, ebx
jmp 0x629389af
lea esp, [ebp - 0xc]
mov al, bl
pop ebx
pop esi
pop edi
pop ebp
ret 0xc