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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push esi
push edi
push ebx
sub esp, 0x134
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x4d1c]
mov eax, dword [edx + 0x6dcc]
mov esi, dword [edx + 0x2570]
mov dword [edx + 0x4d9c], edi
test eax, eax
je 0x422633
test esi, esi
jne 0x422542
dec eax
mov dword [edx + 0x2570], eax
jmp 0x422633
dec esi
xor ebx, ebx
mov eax, 1
mov dword [esp + 0x100], ebx
mov dword [edx + 0x6d18], eax
mov dword [edx + 0x6d14], eax
mov dword [edx + 0x2570], esi
mov dword [edx + 0x4d4c], ebx
cmp dword [edx + 0x4ce8], 3
je 0x42385d
mov eax, dword [edx + 0x6cb0]
shl edi, 3
mov dword [edx + 0x4d54], eax
mov dword [edx + 0x4d50], edi
cmp dword [edx + 0x4cf4], 0
je 0x422621
mov esi, dword [edx + 0x4d50]
add esi, 0xfffffff0
mov dword [edx + 0x4d50], esi
js 0x4225f0
mov eax, dword [edx + 0x4d54]
mov ecx, dword [edx + 0x4d4c]
movzx ebx, byte [eax]
shl ebx, 8
movzx esi, byte [eax + 1]
or ebx, esi
shl ebx, 8
movzx edi, byte [eax + 2]
or ebx, edi
shl ebx, cl
add ecx, 0x10
mov esi, ecx
and ebx, 0xffffff
sar esi, 3
and ecx, 7
add esi, eax
mov dword [edx + 0x4d54], esi
mov dword [edx + 0x4d4c], ecx
shr ebx, 8
jmp 0x42261b
test byte [edx + 0x6dbc], 0x20
jne 0x42261b
push 2
call fcn.0049ba21
mov edx, dword [ebp + 8]
xor ebx, ebx
push esi
push 0x10
push 0x2e
push str._.........._srclibmpg123getbits.h:_i__error:_Tried_to_read__i_bits_with__li_available._n
push eax
call fcn.0040f2f0
mov edx, dword [ebp + 8]
add esp, 0x18
mov dword [edx + 0x6d48], ebx
mov eax, 1
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [edx + 0x6d18], eax
mov dword [edx + 0x6d14], eax
test dword [edx + 0x6dbc], 0x1000000
je 0x422682
mov eax, dword [edx + 0x4d88]
test eax, eax
jle 0x422660
dec eax
cmp eax, dword [edx + 0x4d28]
jle 0x422673
mov eax, dword [edx + 0x6d28]
test eax, eax
jle 0x422682
dec eax
cmp eax, dword [edx + 0x4d28]
jg 0x422682
xor eax, eax
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x100], 0
movsd xmm0, qword [0x4bbe88]
lea ebx, [edx + 0x6f08]
mov dword [esp + 0x118], 0
lea eax, [esp + 0x11c]
movsd qword [eax - 0x24], xmm0
mov ecx, dword [edx + 0x6d4c]
mov dword [eax - 0x10], ebx
mov ebx, edx
mov dword [eax - 0xc], esi
mov dword [eax - 8], edi
mov edi, eax
mov esi, dword [ecx + 0x2c]
test esi, esi
je 0x4226d8
push ebx
call esi
add esp, 4
mov ecx, dword [ebx + 0x6d4c]
push edi
push ebx
call dword [ecx + 0xc]
add esp, 8
test eax, eax
jle 0x424669
mov esi, dword [esp + 0x118]
mov edi, dword [esp + 0x11c]
cmp dword [ebx + 0x6cc0], 0
jne 0x422aba
mov ecx, edi
and ecx, 0xffe00000
cmp ecx, 0xffe00000
jne 0x42273f
test edi, 0x60000
je 0x42273f
mov ecx, edi
and ecx, 0xf000
cmp ecx, 0xf000
je 0x42273f
mov ecx, edi
and ecx, 0xc00
cmp ecx, 0xc00
jne 0x422aba
mov ecx, edi
and ecx, 0xffffff00
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], edi
cmp ecx, 0x49443300
je 0x422a68
test byte [ebx + 0x6dbc], 0x20
jne 0x42279d
cmp dword [ebx + 0x6db8], 1
jle 0x42279d
cmp byte [ebx + 0x4d3c], 0
jne 0x42279d
push 2
call fcn.0049ba21
push edi
push str.Note:_Junk_at_the_beginning__0x_08lx__n
push eax
call fcn.0040f2f0
add esp, 0x10
mov edi, dword [esp + 0x108]
cmp edi, 0x52494646
jne 0x422908
test byte [ebx + 0x6dbc], 0x20
jne 0x4227d9
cmp dword [ebx + 0x6db8], 1
jle 0x4227d9
cmp byte [ebx + 0x4d3c], 0
jne 0x4227d9
push 2
call fcn.0049ba21
push str.Note:_Looks_like_a_RIFF_header._n
push eax
call fcn.0040f2f0
add esp, 0xc
mov ecx, dword [ebx + 0x6d4c]
lea edi, [esp + 0x108]
push edi
push ebx
call dword [ecx + 0xc]
mov edx, eax
add esp, 8
test edx, edx
jle 0x422a90
mov ecx, dword [ebx + 0x6d4c]
cmp dword [esp + 0x108], 0x64617461
je 0x4228a4
xor eax, eax
mov dword [esp + 0x118], esi
mov edi, eax
inc edi
cmp edi, 0x400
ja 0x42389f
test edi, edi
jne 0x422832
mov esi, 1
jmp 0x422836
xor eax, eax
xor esi, esi
lea eax, [esp + 0x108]
push eax
push ebx
call dword [ecx + 0x10]
add esp, 8
test eax, eax
jle 0x423891
mov ecx, dword [ebx + 0x6d4c]
test esi, esi
je 0x422889
cmp dword [ecx + 0x2c], 0
je 0x422889
push 4
push ebx
call dword [ecx + 0x1c]
add esp, 8
test eax, eax
jne 0x422883
mov ecx, dword [ebx + 0x6d4c]
push ebx
call dword [ecx + 0x2c]
mov ecx, dword [ebx + 0x6d4c]
push 0xfffffffffffffffc
push ebx
call dword [ecx + 0x1c]
add esp, 0xc
mov ecx, dword [ebx + 0x6d4c]
cmp dword [esp + 0x108], 0x64617461
jne 0x42281a
mov esi, dword [esp + 0x118]
lea edi, [esp + 0x108]
push edi
push ebx
call dword [ecx + 0xc]
mov edx, eax
add esp, 8
test edx, edx
jle 0x422a90
test byte [ebx + 0x6dbc], 0x20
jne 0x4228e6
cmp dword [ebx + 0x6db8], 1
jle 0x4228e6
cmp byte [ebx + 0x4d3c], 0
jne 0x4228e6
push 2
call fcn.0049ba21
push str.Note:_Skipped_RIFF_header__n
push eax
call fcn.0040f2f0
add esp, 0xc
mov ecx, dword [esp + 0x108]
mov edx, 3
mov dword [ebx + 0x6cbc], 0
mov dword [esp + 0x11c], ecx
jmp 0x422a98
mov eax, dword [ebx + 0x6ed8]
mov dword [esp + 0x11c], 0
test eax, eax
jl 0x422943
cmp eax, 0x10000
jg 0x422943
inc esi
mov eax, 0x10000
cmp esi, 0x10000
jge 0x4238a8
xor edx, edx
mov dword [esp + 0xf4], eax
xor edi, edi
jmp 0x422968
xor edx, edx
mov dword [esp + 0xf4], eax
xor edi, edi
mov ecx, edx
inc esi
cmp dword [esp + 0xf4], 0
jl 0x422968
cmp esi, dword [esp + 0xf4]
jge 0x42394d
inc edi
cmp edi, 0x400
ja 0x423944
test edi, edi
jne 0x422980
mov ebx, 1
jmp 0x422982
xor ebx, ebx
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x108]
push ecx
push eax
mov edx, dword [eax + 0x6d4c]
call dword [edx + 0x10]
mov ecx, eax
add esp, 8
test ecx, ecx
jle 0x42393a
test ebx, ebx
je 0x422a01
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x6d4c]
cmp dword [eax + 0x2c], 0
je 0x422a01
push 4
push dword [ebp + 8]
mov dword [esp + 0xf8], ecx
call dword [eax + 0x1c]
mov ecx, dword [esp + 0xf8]
add esp, 8
test eax, eax
jne 0x422a01
mov eax, dword [ebp + 8]
push eax
mov dword [esp + 0xf4], ecx
mov edx, dword [eax + 0x6d4c]
call dword [edx + 0x2c]
mov eax, dword [ebp + 8]
push 0xfffffffffffffffc
mov edx, dword [eax + 0x6d4c]
push eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0xfc]
add esp, 0xc
mov edx, dword [esp + 0x108]
mov eax, edx
and eax, 0xffe00000
cmp eax, 0xffe00000
jne 0x422950
test edx, 0x60000
je 0x422950
mov eax, edx
and eax, 0xf000
cmp eax, 0xf000
je 0x422950
mov eax, edx
and eax, 0xc00
cmp eax, 0xc00
je 0x422950
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x104]
call fcn.004246a0
mov ecx, eax
test ecx, ecx
jne 0x42391f
jmp 0x422950
push edi
push ebx
mov dword [ebx + 0x6cbc], 0
call fcn.00444f90
mov edx, eax
add esp, 8
test edx, edx
jl 0x422a90
jle 0x422a8b
or dword [ebx + 0x6f00], 3
mov edx, 3
test edx, edx
jl 0x423966
cmp edx, 3
je 0x423844
cmp edx, 2
je 0x4226ef
cmp edx, 0xa
je 0x4237e7
mov edi, dword [esp + 0x11c]
mov ecx, edi
and ecx, 0xffe00000
cmp ecx, 0xffe00000
jne 0x422b0d
test edi, 0x60000
je 0x422b0d
mov ecx, edi
and ecx, 0xf000
cmp ecx, 0xf000
je 0x422b0d
mov ecx, edi
and ecx, 0xc00
cmp ecx, 0xc00
je 0x422b0d
mov eax, ebx
mov edx, edi
lea ecx, [esp + 0x100]
call fcn.004246a0
mov edx, eax
test edx, edx
jge 0x422b0f
jmp 0x423966
xor edx, edx
cmp edx, 3
je 0x423844
cmp edx, 2
je 0x4226ef
cmp edx, 0xa
je 0x4237e7
test edx, edx
jne 0x42304f
mov ecx, dword [esp + 0x11c]
mov edi, ecx
and edi, 0xffffff00
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x11c], 0
cmp edi, 0x54414700
je 0x422fae
cmp edi, 0x49443300
je 0x422f7c
cmp ecx, 0x41504554
je 0x422e7d
mov eax, dword [ebx + 0x6dbc]
test al, 0x20
jne 0x422bbc
cmp byte [ebx + 0x4d3c], 0
jne 0x422bbc
push 2
call fcn.0049ba21
mov edi, eax
mov ecx, dword [ebx + 0x6d4c]
push ebx
call dword [ecx + 0x24]
add eax, 0xfffffffc
push eax
push dword [esp + 0xf4]
push str.Note:_Illegal_Audio_MPEG_Header_0x_08lx_at_offset__li._n
push edi
call fcn.0040f2f0
add esp, 0x18
mov eax, dword [ebx + 0x6dbc]
mov ecx, eax
and ecx, 0x20
jne 0x422c57
mov edi, dword [esp + 0xe8]
and edi, 0xffffff00
cmp edi, 0x626d7000
je 0x422bf9
test eax, 0x80
je 0x422c7d
mov esi, dword [esp + 0x110]
mov edx, ebx
mov edi, dword [esp + 0x114]
jmp 0x422c35
push 2
call fcn.0049ba21
push str.Note:_Could_be_a_BMP_album_art._n
push eax
call fcn.0040f2f0
add esp, 0xc
mov edi, dword [ebx + 0x6dbc]
mov ecx, edi
and ecx, 0x20
test edi, 0x80
je 0x422c7d
mov esi, dword [esp + 0x110]
mov edx, ebx
mov edi, dword [esp + 0x114]
test ecx, ecx
jne 0x422c6e
push 2
call fcn.0049ba21
mov edx, dword [ebp + 8]
push 0x563
push str._.........._srclibmpg123parse.c:_i__error:_not_attempting_to_resync..._n
push eax
call fcn.0040f2f0
mov edx, dword [ebp + 8]
add esp, 0x10
jmp 0x422c6e
test eax, 0x80
je 0x422c7d
mov esi, dword [esp + 0x110]
mov edx, ebx
mov edi, dword [esp + 0x114]
mov dword [edx + 0x6ef0], 0x1b
jmp 0x422e5f
mov edi, dword [ebx + 0x6ed8]
mov dword [ebx + 0x4da4], 0
test ecx, ecx
jne 0x422caf
cmp byte [ebx + 0x4d3c], 0
jne 0x422caf
push 2
call fcn.0049ba21
push str.Note:_Trying_to_resync..._n
push eax
call fcn.0040f2f0
add esp, 0xc
xor edx, edx
xor eax, eax
mov dword [esp + 0xe0], edi
mov edi, edx
mov dword [esp + 0x118], esi
mov edx, ebx
mov ebx, eax
inc edi
cmp dword [esp + 0xe0], 0
jl 0x422cdf
cmp edi, dword [esp + 0xe0]
jge 0x4239eb
inc ebx
cmp ebx, 0x400
ja 0x4239e4
test ebx, ebx
jne 0x422cf7
mov esi, 1
jmp 0x422cfb
xor eax, eax
xor esi, esi
mov eax, dword [edx + 0x6d4c]
lea ecx, [esp + 0xe8]
push ecx
push edx
call dword [eax + 0x10]
mov edx, dword [ebp + 8]
add esp, 8
test eax, eax
jle 0x42397f
test esi, esi
je 0x422d5a
mov ecx, dword [edx + 0x6d4c]
cmp dword [ecx + 0x2c], 0
je 0x422d5a
push 4
push edx
call dword [ecx + 0x1c]
mov edx, dword [ebp + 8]
add esp, 8
test eax, eax
jne 0x422d5a
mov ecx, dword [edx + 0x6d4c]
push edx
call dword [ecx + 0x2c]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x6d4c]
push 0xfffffffffffffffc
push edx
call dword [ecx + 0x1c]
mov edx, dword [ebp + 8]
add esp, 0xc
mov ecx, dword [esp + 0xe8]
mov esi, ecx
and esi, 0xffe00000
cmp esi, 0xffe00000
jne 0x422cc7
test ecx, 0x60000
je 0x422cc7
mov esi, ecx
and esi, 0xf000
cmp esi, 0xf000
je 0x422cc7
mov esi, ecx
and esi, 0xc00
cmp esi, 0xc00
je 0x422cc7
mov ebx, edx
mov edx, edi
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0x118]
mov dword [esp + 0x11c], ecx
test byte [ebx + 0x6dbc], 0x20
jne 0x422e06
cmp byte [ebx + 0x4d3c], 0
jne 0x422e06
push 2
mov dword [esp + 0xc4], edx
call fcn.0049ba21
mov edx, dword [esp + 0xc4]
push edx
push str.Note:_Skipped__li_bytes_in_input._n
push eax
mov dword [esp + 0xd0], edx
call fcn.0040f2f0
mov edx, dword [esp + 0xd0]
add esp, 0x10
test edi, edi
jl 0x422e69
cmp edx, edi
jl 0x422e69
mov dword [esp + 0xc0], edx
mov edx, ebx
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x114]
test byte [edx + 0x6dbc], 0x20
jne 0x422e55
push 2
call fcn.0049ba21
mov edx, dword [ebp + 8]
push dword [esp + 0xc4]
push 0x555
push str._.........._srclibmpg123parse.c:_i__error:_Giving_up_resync_after__li_bytes___your_stream_is_not_nice...__maybe_increasing_resync_limit_could_help_._n
push eax
call fcn.0040f2f0
mov edx, dword [ebp + 8]
add esp, 0x14
mov dword [edx + 0x6ef0], 0x1c
mov ebx, 0xffffffff
jmp 0x4237f9
mov dword [ebx + 0x6cbc], 0
mov edx, 2
jmp 0x42302b
mov edi, dword [ebx + 0x6d4c]
lea ecx, [esp + 0xa4]
push 0x1c
push ecx
mov dword [ebx + 0x6cbc], 0
push ebx
call dword [edi + 8]
mov edx, eax
add esp, 0xc
test edx, edx
jl 0x422fa4
lea edi, [edx + 3]
cmp edx, 0x1c
jl 0x422f01
mov ecx, str.AGEX
lea eax, [esp + 0xa4]
mov edx, 4
call fcn.0048a980
test eax, eax
jne 0x422f01
movzx ecx, byte [esp + 0xab]
movzx eax, byte [esp + 0xaa]
shl ecx, 0x18
shl eax, 0x10
movzx edx, byte [esp + 0xa9]
or ecx, eax
shl edx, 8
or ecx, edx
movzx eax, byte [esp + 0xa8]
or ecx, eax
cmp ecx, 0x7d0
je 0x422f1c
mov ecx, dword [ebx + 0x6d4c]
push edi
push ebx
call dword [ecx + 0x1c]
add esp, 8
test eax, eax
jl 0x423a3b
jmp 0x422f9f
mov ecx, 0x14
cmp byte [esp + ecx + 0xa4], 0
jne 0x422f01
inc ecx
cmp ecx, 0x1c
jl 0x422f21
movzx edi, byte [esp + 0xaf]
movzx eax, byte [esp + 0xae]
shl edi, 0x18
shl eax, 0x10
movzx edx, byte [esp + 0xad]
or edi, eax
shl edx, 8
or edi, edx
mov ecx, dword [ebx + 0x6d4c]
movzx eax, byte [esp + 0xac]
or edi, eax
push edi
push ebx
call dword [ecx + 0x14]
mov edx, eax
add esp, 8
mov edi, 3
test edx, edx
cmovge edx, edi
jmp 0x422fa4
push ecx
push ebx
mov dword [ebx + 0x6cbc], 0
call fcn.00444f90
mov edx, eax
add esp, 8
test edx, edx
jl 0x422fa4
jle 0x422f9f
or dword [ebx + 0x6f00], 3
mov edx, 3
test edx, edx
jl 0x423966
jmp 0x42302b
push 0x7c
mov eax, ecx
mov edx, ecx
push dword [esp + 0x110]
shr eax, 0x18
mov byte [ebx + 0x6f07], cl
mov byte [ebx + 0x6f04], al
mov eax, ecx
mov ecx, dword [ebx + 0x6d4c]
shr edx, 0x10
shr eax, 8
mov byte [ebx + 0x6f05], dl
mov byte [ebx + 0x6f06], al
push ebx
call dword [ecx + 8]
mov edx, eax
add esp, 0xc
test edx, edx
jl 0x422fa4
or dword [ebx + 0x6f00], 3
or dword [ebx + 0x6d60], 2
test byte [ebx + 0x6dbc], 0x20
jne 0x423026
cmp dword [ebx + 0x6db8], 2
jle 0x423026
push 2
call fcn.0049ba21
push str.Note:_Skipped_ID3v1_tag._n
push eax
call fcn.0040f2f0
add esp, 0xc
mov edx, 3
cmp edx, 3
je 0x423844
cmp edx, 2
je 0x4226ef
cmp edx, 0xa
je 0x4237e7
cmp edx, 1
jne 0x423966
cmp dword [ebx + 0x6cc0], 0
jne 0x424680
test dword [ebx + 0x6dbc], 0x400000
jne 0x42325a
mov edi, dword [esp + 0x11c]
mov dword [esp + 0xe4], 0
test byte [ebx + 0x6d60], 0xc
je 0x42325a
mov ecx, dword [ebx + 0x6d4c]
push ebx
call dword [ecx + 0x24]
mov dword [esp + 0xd4], eax
mov ecx, dword [ebx + 0x6d4c]
push dword [ebx + 0x4d1c]
push ebx
call dword [ecx + 0x14]
add esp, 0xc
test eax, eax
jge 0x4230df
mov esi, dword [esp + 0x110]
mov edx, ebx
mov edi, dword [esp + 0x114]
cmp eax, 0xffffffff
je 0x423a68
cmp eax, 0xfffffff6
jne 0x42323e
mov ebx, 0xfffffff6
jmp 0x423243
mov eax, dword [ebx + 0x6d4c]
lea ecx, [esp + 0xe4]
push ecx
push ebx
call dword [eax + 0xc]
mov dword [esp + 0xd0], eax
mov ecx, dword [ebx + 0x6d4c]
push ebx
call dword [ecx + 0x24]
mov ecx, dword [ebx + 0x6d4c]
sub eax, dword [esp + 0xdc]
push eax
push ebx
call dword [ecx + 0x1c]
add esp, 0x14
test eax, eax
jl 0x423ab4
cmp dword [esp + 0xc8], 0xfffffff6
je 0x423a9a
cmp dword [esp + 0xc8], 0
jne 0x423164
test byte [ebx + 0x6dbc], 0x20
jne 0x42315a
push 2
call fcn.0049ba21
push 0x44b
push str._.........._srclibmpg123parse.c:_i__warning:_Cannot_read_next_header__a_one_frame_stream__Duh..._n
push eax
call fcn.0040f2f0
add esp, 0x10
mov eax, 0xa
jmp 0x42325f
mov edx, dword [esp + 0xe4]
mov ecx, edx
and ecx, 0xffe00000
cmp ecx, 0xffe00000
jne 0x4231e1
test edx, 0x60000
je 0x4231e1
mov ecx, edx
and ecx, 0xf000
cmp ecx, 0xf000
je 0x4231e1
mov ecx, edx
and ecx, 0xc00
cmp ecx, 0xc00
je 0x4231e1
mov ecx, edi
mov eax, edx
and ecx, 0xfffe0c00
and eax, 0xfffe0c00
cmp ecx, eax
jne 0x4231e1
and edi, 0xc0
xor ecx, ecx
mov eax, 1
cmp edi, 0xc0
mov edi, ecx
cmove edi, eax
and edx, 0xc0
cmp edx, 0xc0
cmove ecx, eax
cmp edi, ecx
je 0x42325f
mov ecx, dword [ebx + 0x6d4c]
push 3
mov dword [ebx + 0x6cbc], 0
push ebx
call dword [ecx + 0x1c]
add esp, 8
test eax, eax
jl 0x423205
mov eax, 3
jmp 0x42325f
mov edx, ebx
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x114]
test byte [edx + 0x6dbc], 0x20
jne 0x42323e
push 2
call fcn.0049ba21
mov edx, dword [ebp + 8]
push 0x457
push str._.........._srclibmpg123parse.c:_i__error:_Cannot_seek_3_bytes_back__n
push eax
call fcn.0040f2f0
mov edx, dword [ebp + 8]
add esp, 0x10
mov ebx, 0xffffffff
mov eax, dword [edx + 0x6d4c]
push 4
push edx
call dword [eax + 0x1c]
mov edx, dword [ebp + 8]
add esp, 8
jmp 0x4237f9
mov eax, 1
cmp eax, 3
je 0x423844
cmp eax, 2
je 0x4226ef
mov dword [esp + 0x118], esi
lea edi, [esp + 0x11c]
cmp eax, 0xa
je 0x4237e7
test dword [ebx + 0x6dbc], 0x1000000
je 0x4232ee
mov ecx, dword [ebx + 0x6cc0]
test ecx, ecx
je 0x4232ee
mov esi, dword [esp + 0x11c]
mov eax, ecx
mov edx, esi
and eax, 0xfffe0c00
and edx, 0xfffe0c00
cmp eax, edx
jne 0x422673
and ecx, 0xc0
mov eax, 1
xor edx, edx
cmp ecx, 0xc0
mov ecx, 0
cmove edx, eax
and esi, 0xc0
cmp esi, 0xc0
cmovne eax, ecx
cmp edx, eax
jne 0x422673
mov ecx, dword [ebx + 0x6d4c]
push ebx
call dword [ecx + 0x24]
mov esi, eax
imul ecx, dword [ebx + 0x6cb8], 0xf84
push dword [ebx + 0x4d1c]
lea ecx, [ebx + ecx + 0x4fa8]
mov dword [esp + 0xf4], ecx
push ecx
mov ecx, dword [ebx + 0x6d4c]
push ebx
call dword [ecx + 0x18]
add esp, 0x10
test eax, eax
jl 0x424669
mov ecx, dword [ebx + 0x6cb0]
mov dword [ebx + 0x6cb4], ecx
mov ecx, dword [esp + 0xec]
mov dword [ebx + 0x6cb0], ecx
mov ecx, dword [ebx + 0x6cb8]
inc ecx
and ecx, 1
mov dword [ebx + 0x6cb8], ecx
cmp dword [ebx + 0x6cc0], 0
jne 0x424652
mov ecx, dword [esp + 0x11c]
add esi, 0xfffffffc
mov dword [ebx + 0x6cc0], ecx
mov ecx, dword [ebx + 0x4d28]
test ecx, ecx
jge 0x424644
mov dword [ebx + 0x4d34], esi
cmp dword [ebx + 0x4ce8], 3
jne 0x42344a
mov eax, dword [ebx + 0x4cd8]
cmp dword [ebx + 0x4cc4], 2
je 0x424629
mov ecx, 9
test eax, eax
mov eax, 0x11
cmovne eax, ecx
mov dword [esp + 0xdc], eax
mov ecx, dword [ebx + 0x6dbc]
test ecx, 0x4000
jne 0x42344a
mov edx, eax
mov eax, dword [ebx + 0x4d1c]
mov dword [esp + 0xd8], eax
lea edx, [edx + 8]
mov dword [esp + 0xd4], edx
cmp eax, edx
jl 0x42344a
mov dword [esp + 0xcc], 2
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xdc]
cmp byte [edx + eax], 0
jne 0x424621
inc edx
cmp edx, ebx
jl 0x423409
mov dword [esp + 0xec], eax
lea edi, [esp + 0x11c]
mov edx, dword [edi - 0x40]
mov ebx, dword [ebp + 8]
movzx eax, byte [eax + edx]
mov dword [edi - 0x58], eax
cmp eax, 0x49
je 0x4245f4
cmp dword [esp + 0xc4], 0x58
je 0x423b19
mov edx, ebx
push edx
call fcn.00441940
mov edx, dword [ebp + 8]
add esp, 4
mov eax, dword [edx + 0x6cb0]
mov ecx, dword [edx + 0x4d28]
mov dword [edx + 0x4d4c], 0
mov dword [edx + 0x4d54], eax
cmp dword [edx + 0x4ce8], 3
je 0x423488
mov eax, dword [edx + 0x4d1c]
shl eax, 3
jmp 0x423491
mov eax, dword [edx + 0x4da0]
shl eax, 3
mov edi, dword [edx + 0x4d98]
mov ebx, edi
mov dword [edx + 0x4d50], eax
inc ebx
mov dword [edx + 0x4d98], ebx
je 0x4234fc
mov eax, dword [edx + 0x4d1c]
test eax, eax
jle 0x4234cb
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
addsd xmm0, qword [0x4bbe80]
movsd qword [esp + 0xf8], xmm0
pxor xmm0, xmm0
pxor xmm1, xmm1
cvtsi2sd xmm0, edi
cvtsi2sd xmm1, ebx
mulsd xmm0, qword [edx + 0x4d90]
movsd xmm2, qword [esp + 0xf8]
addsd xmm2, xmm0
divsd xmm2, xmm1
movsd qword [edx + 0x4d90], xmm2
mov ebx, dword [edx + 0x4d38]
inc ecx
mov dword [edx + 0x4d28], ecx
bts ebx, 1
jb 0x42356c
mov edi, dword [edx + 0x4d88]
test edi, edi
jle 0x42351d
cmp ecx, edi
jge 0x42352b
mov eax, dword [edx + 0x6d28]
test eax, eax
jle 0x42356c
cmp ecx, eax
jl 0x42356c
mov dword [edx + 0x4d38], ebx
test byte [edx + 0x6dbc], 0x20
jne 0x42356c
push 2
mov dword [esp + 0x24], ecx
call fcn.0049ba21
mov edx, dword [ebp + 8]
mov ebx, eax
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0x6d28]
test eax, eax
cmovg edi, eax
push edi
push ecx
push str._nWarning:_Encountered_more_data_after_announced_end_of_track__frame__li__li_._Frankenstein__n
push ebx
call fcn.0040f2f0
mov edx, dword [ebp + 8]
add esp, 0x14
cmp dword [edx + 0x6dcc], 0
je 0x423582
cmp dword [edx + 0x4ce8], 3
je 0x423af6
mov dword [edx + 0x4d2c], esi
test byte [edx + 0x4d38], 1
je 0x4235bb
cmp dword [edx + 0x6cd4], 0
je 0x4235bb
mov eax, dword [edx + 0x4d28]
cmp eax, dword [edx + 0x6cd0]
jne 0x4235bb
push esi
lea eax, [edx + 0x6cc8]
push eax
call fcn.00449da0
mov edx, dword [ebp + 8]
add esp, 8
movsx eax, byte [edx + 0x4d3c]
test eax, eax
jle 0x4235cd
dec eax
mov byte [edx + 0x4d3c], al
mov eax, dword [edx + 0x6d4c]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x4235e3
push edx
call eax
mov edx, dword [ebp + 8]
add esp, 4
mov esi, 1
mov dword [edx + 0x6d18], esi
mov dword [edx + 0x6d14], esi
cmp dword [edx + 0x4cf4], 0
je 0x42368a
mov edi, dword [edx + 0x4d50]
add edi, 0xfffffff0
mov dword [edx + 0x4d50], edi
js 0x423659
mov eax, dword [edx + 0x4d54]
mov ecx, dword [edx + 0x4d4c]
movzx ebx, byte [eax]
shl ebx, 8
movzx edi, byte [eax + 1]
or ebx, edi
shl ebx, 8
movzx edi, byte [eax + 2]
or ebx, edi
shl ebx, cl
add ecx, 0x10
mov edi, ecx
and ebx, 0xffffff
sar edi, 3
and ecx, 7
add edi, eax
mov dword [edx + 0x4d54], edi
mov dword [edx + 0x4d4c], ecx
shr ebx, 8
jmp 0x423684
test byte [edx + 0x6dbc], 0x20
jne 0x423682
push 2
call fcn.0049ba21
mov edx, dword [ebp + 8]
push edi
push 0x10
push 0x2e
push str._.........._srclibmpg123getbits.h:_i__error:_Tried_to_read__i_bits_with__li_available._n
push eax
call fcn.0040f2f0
mov edx, dword [ebp + 8]
add esp, 0x18
xor ebx, ebx
mov dword [edx + 0x6d48], ebx
cmp dword [edx + 0x4ce4], 2
jge 0x4237c8
mov ebx, dword [edx + 0x6cbc]
test ebx, ebx
je 0x423747
mov ecx, dword [esp + 0x11c]
cmp ebx, ecx
jne 0x4236bf
mov dword [edx + 0x4ce4], 0
jmp 0x4237cf
mov eax, ebx
mov edi, ecx
and eax, 0xfffe0c00
and edi, 0xfffe0c00
cmp eax, edi
jne 0x423709
and ebx, 0xc0
xor eax, eax
xor edi, edi
cmp ebx, 0xc0
mov ebx, ecx
cmove edi, esi
and ebx, 0xc0
cmp ebx, 0xc0
cmove eax, esi
cmp edi, eax
jne 0x423709
mov dword [edx + 0x4ce4], 1
jmp 0x4237cf
mov dword [edx + 0x4ce4], 2
or dword [edx + 0x4d38], 2
test byte [edx + 0x6dbc], 0x20
jne 0x4237cf
push 2
call fcn.0049ba21
mov edx, dword [ebp + 8]
push str._nWarning:_Big_change__MPEG_version__layer__rate_._Frankenstein_stream__n
push eax
call fcn.0040f2f0
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x4237c8
mov ebx, dword [edx + 0x6cc0]
mov dword [edx + 0x4ce4], 2
mov ecx, dword [esp + 0x11c]
test ebx, ebx
je 0x4237cf
invalid