Function at 0x62941ea8
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
lea esi, [ebx + 0x20]
lea eax, [esp + 0x48]
mov byte [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x48], 0
call method.char_const_std::__find_if_char_const____gnu_cxx::__ops._Iter_equals_val_char_const____char_const__char_const____gnu_cxx::__ops::_Iter_equals_val_char_const___std::random_access_iterator_tag_
mov edi, dword [esp + 0x70]
sub eax, ebx
inc eax
mov ecx, dword [edi + 0x36a6c]
mov edx, dword [edi + 0x36a68]
mov ebp, ecx
sub ebp, edx
cmp eax, ebp
jbe 0x62941f2c
sub eax, ebp
lea ecx, [edi + 0x36a68]
mov dword [esp], eax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___._M_default_append_unsigned_int_
push eax
jmp 0x62941f3a
jae 0x62941f3a
add eax, edx
cmp ecx, eax
je 0x62941f3a
mov dword [edi + 0x36a6c], eax
mov edx, dword [edi + 0x36a68]
mov eax, dword [edi + 0x36a6c]
sub eax, edx
mov dword [esp], ebx
mov dword [esp + 0x4c], eax
mov byte [esp + 0xc], 0
movzx eax, byte [esp + 0x2c]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x47]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp + 0x48], edx
mov byte [esp + 0x47], 0
call method.char_const_std::__find_if_char_const____gnu_cxx::__ops._Iter_equals_val_char_const____char_const__char_const____gnu_cxx::__ops::_Iter_equals_val_char_const___std::random_access_iterator_tag_
mov dword [esp + 0xc], ebx
movzx edx, byte [esp + 0x30]
mov dword [esp + 0x30], edx
sub eax, ebx
movzx edx, word [esp + 0x28]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
movzx edx, byte [esp + 0x38]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], edx
mov dword [esp + 8], eax
lea edx, [esp + 0x48]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
mov ecx, dword [esp + 0x3c]
xor ebx, ebx
call method.OpenMPT::CSoundFile.ParseMIDIMacro_OpenMPT::CSoundFile::PlayState__unsigned_short__bool__mpt::mpt_libopenmpt::span_char_const___mpt::mpt_libopenmpt::span_unsigned_char___unsigned_char__unsigned_char__const
sub esp, 0x20
mov ebp, dword [esp + 0x4c]
mov byte [esp + 0x28], 0
cmp ebx, dword [esp + 0x4c]
jae 0x629420ba
mov ecx, dword [esp + 0x48]
movzx eax, byte [ecx + ebx]
cmp al, 0xf0
jne 0x6294202e
mov esi, ebp
lea eax, [ebx + 1]
sub esi, ebx
cmp esi, 3
jbe 0x62942009
mov dl, byte [ecx + ebx + 1]
mov esi, 4
add edx, 0x10
cmp dl, 1
jbe 0x62942067
cmp ebp, eax
jbe 0x6294201f
cmp byte [ecx + eax], 0xf7
jne 0x6294201c
sub eax, ebx
inc eax
mov esi, eax
jne 0x62942067
jmp 0x6294201f
inc eax
jmp 0x62942009
lea eax, [ebp + 1]
mov byte [ecx + ebp], 0xf7
mov esi, eax
mov ebp, eax
sub esi, ebx
jmp 0x62942063
test al, al
js 0x62942046
cmp byte [esp + 0x28], 0
je 0x62942043
dec ebx
mov al, byte [esp + 0x28]
mov byte [ecx + ebx], al
jmp 0x62941fd6
inc ebx
jmp 0x62941fd6
mov edx, ebp
mov dword [esp], eax
sub edx, ebx
mov dword [esp + 0x38], edx
call method.OpenMPT::MIDIEvents.GetEventLength_unsigned_char_
movzx esi, al
cmp esi, dword [esp + 0x38]
jbe 0x62942063
mov esi, dword [esp + 0x38]
test esi, esi
je 0x629420ba
mov ecx, dword [esp + 0x48]
add ecx, ebx
mov al, byte [ecx]
cmp al, 0xef
ja 0x62942077
mov byte [esp + 0x28], al
mov eax, esi
cmp esi, 0xffffffff
jne 0x62942084
mov eax, dword [esp + 0x4c]
sub eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov dword [esp], edi
mov ecx, dword [esp + 0x3c]
call method.OpenMPT::CSoundFile.SendMIDIData_OpenMPT::CSoundFile::PlayState__unsigned_short__bool__mpt::mpt_libopenmpt::span_unsigned_char_const___unsigned_char_
add ebx, esi
sub esp, 0x18
jmp 0x62941fd6
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x18