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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x10c
mov ebx, dword [esp + 0x120]
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046bf70
mov dword [esp + 8], 0xa
mov esi, eax
mov edi, edx
lea eax, [esp + 0xdd]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046dfb0
cmp eax, 0xa
jne 0x48508c
mov ecx, dword [esp + 0x124]
movzx edx, byte [esp + 0xdd]
movsx eax, byte [ecx]
cmp edx, eax
je 0x4850f0
mov dword [esp + 0xc], 0
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046bf70
add ebx, 0x4b8
mov dword [esp], ebx
mov dword [esp + 8], 0x1119400
mov dword [esp + 4], 0
call fcn.00528040
mov dword [esp], ebx
mov dword [esp + 8], 0x11194a0
mov dword [esp + 4], 0
call fcn.00528040
mov dword [esp], ebx
mov dword [esp + 8], 0x1119300
mov dword [esp + 4], 0
call fcn.00528040
mov eax, ebx
call fcn.00484040
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx edx, byte [esp + 0xde]
movsx eax, byte [ecx + 1]
cmp edx, eax
jne 0x485071
movzx edx, byte [esp + 0xdf]
movsx eax, byte [ecx + 2]
cmp edx, eax
jne 0x485071
movzx eax, byte [esp + 0xe0]
cmp al, 0xff
mov byte [esp + 0x5f], al
je 0x485071
cmp byte [esp + 0xe1], 0xff
je 0x485071
movzx eax, byte [esp + 0xe3]
test al, al
js 0x485071
movzx edx, byte [esp + 0xe4]
test dl, dl
js 0x485071
movzx ebp, byte [esp + 0xe5]
mov ecx, ebp
test cl, cl
js 0x485071
movzx ecx, byte [esp + 0xe6]
test cl, cl
js 0x485071
mov esi, eax
and edx, 0x7f
and esi, 0x7f
and ecx, 0x7f
shl edx, 0xe
and ebp, 0x7f
shl esi, 0x15
or esi, edx
or esi, ecx
shl ebp, 7
or esi, ebp
mov dword [esp + 0x38], esi
movzx esi, byte [esp + 0xe2]
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x68], esi
mov dword [esp], eax
call fcn.0046bf70
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x64], edx
mov edx, eax
sar edx, 0x1f
add dword [esp + 0x60], eax
adc dword [esp + 0x64], edx
cmp byte [esp + 0x5f], 2
je 0x48528e
jae 0x485905
mov eax, 0x111904d
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x5f]
mov dword [esp + 8], str.ID3v2._d_tag_skipped__cannot_handle__s_n
mov dword [esp + 4], 0x20
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00acfa00
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046bf70
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00ad0250
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
call fcn.00ad0250
jmp 0x485011
test byte [esp + 0x68], 0x40
mov eax, str.compression
jne 0x485223
mov esi, dword [esp + 0x68]
mov dword [esp + 0x58], 6
mov dword [esp + 0x40], 6
mov dword [esp + 0x44], 0
and esi, 0x80
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x40]
cmp dword [esp + 0x38], esi
jge 0x4853d1
jmp 0x485540
lea eax, [esp + 0xe7]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046dfb0
cmp byte [esp + 0x5f], 3
mov byte [esp + 0xeb], 0
je 0x485590
mov esi, dword [ebx + 0x10]
mov dword [esp], esi
call fcn.0046df30
mov dword [esp], esi
mov edi, eax
call fcn.0046df30
mov ebp, edi
and ebp, 0x7f
shl ebp, 7
mov dword [esp], esi
and eax, 0x7f
add ebp, eax
call fcn.0046df30
shl ebp, 7
mov dword [esp], esi
and eax, 0x7f
add ebp, eax
call fcn.0046df30
shl ebp, 7
and eax, 0x7f
add ebp, eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046e510
mov esi, eax
mov ecx, eax
and esi, 2
mov dword [esp + 0x3c], esi
cmp ebp, 0x10000000
ja 0x485540
mov esi, dword [esp + 0x38]
sub esi, dword [esp + 0x58]
sub esi, ebp
test esi, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
js 0x485540
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x2c], ecx
mov dword [esp], eax
call fcn.0046bf70
test ebp, ebp
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov edi, edx
jne 0x485420
cmp byte [esp + 0xe7], 0
jne 0x485565
mov esi, dword [esp + 0x40]
cmp dword [esp + 0x34], esi
jl 0x485540
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x4852d3
lea eax, [esp + 0xe7]
mov dword [esp + 8], 3
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046dfb0
mov eax, dword [ebx + 0x10]
mov byte [esp + 0xea], 0
mov dword [esp], eax
call fcn.0046e580
xor ecx, ecx
mov dword [esp + 0x3c], 0
mov ebp, eax
jmp 0x48535c
test cl, 1
je 0x4854e4
cmp ebp, 3
jbe 0x485540
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x2c], ecx
mov dword [esp], eax
call fcn.0046e620
mov ecx, dword [esp + 0x2c]
mov edx, eax
mov dword [esp + 0xfc], eax
lea eax, [ebp - 4]
mov dword [esp + 0x50], eax
mov eax, ecx
and eax, 8
and ecx, 4
mov dword [esp + 0x48], eax
je 0x485503
mov edx, dword [esp + 0x48]
mov eax, str.encrypted
mov dword [esp + 8], str.Skipping__s_ID3v2_frame__s._n
mov dword [esp + 4], 0x18
mov dword [esp], ebx
test edx, edx
mov edx, str.encrypted_and_compressed
cmovne eax, edx
lea edx, [esp + 0xe7]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00acfa00
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046c230
mov eax, ebp
xor edx, edx
add eax, esi
adc edx, edi
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046bf70
jmp 0x4853c3
mov eax, ecx
mov edx, ebp
and eax, 8
and ecx, 4
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x48], eax
jne 0x485467
movzx eax, byte [esp + 0xe7]
cmp al, 0x54
je 0x4855a2
test al, al
jne 0x4854bc
cmp byte [esp + 0xe8], 0
jne 0x4858a6
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046c230
cmp byte [esp + 0x5f], 4
jne 0x485248
test byte [esp + 0x68], 0x10
je 0x485248
add dword [esp + 0x60], 0xa
adc dword [esp + 0x64], 0
jmp 0x485248
lea eax, [esp + 0xe7]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Invalid_empty_frame__s__skipping._n
mov dword [esp + 4], 0x30
mov dword [esp], ebx
call fcn.00acfa00
jmp 0x4853c3
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046e620
mov ebp, eax
jmp 0x485346
mov eax, dword [esp + 0x3c]
or eax, dword [esp + 0x6c]
or eax, dword [esp + 0x48]
jne 0x4855d0
mov edx, dword [ebx + 0x10]
lea ecx, [esp + 0xe7]
mov eax, ebx
mov dword [esp], ecx
mov ecx, dword [esp + 0x50]
call fcn.00483bf0
jmp 0x4854bc
mov dword [esp + 8], edx
lea eax, [esp + 0xf0]
lea edx, [esp + 0xec]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00535690
mov ecx, dword [esp + 0xec]
test ecx, ecx
mov dword [esp + 0x3c], ecx
je 0x485861
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x48570c
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x485852
xor ecx, ecx
xor edx, edx
cmp dword [esp + 0x48], 0
je 0x4857d3
mov dword [esp + 0x48], esi
mov esi, eax
mov dword [esp + 0x4c], edi
mov edi, ebx
mov ebx, dword [esp + 0x3c]
jmp 0x48564a
add edx, 1
add ecx, 1
cmp ecx, esi
je 0x48566b
test edx, edx
je 0x485702
cmp byte [ebx + edx], 0
jne 0x485640
xor eax, eax
cmp byte [ebx + edx - 1], 0xff
setne al
add ecx, 1
add edx, eax
cmp ecx, esi
jne 0x48564a
mov ebx, edi
mov esi, dword [esp + 0x48]
mov ecx, edx
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 4], edx
lea edx, [esp + 0x78]
mov dword [esp], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
call fcn.0046bb40
mov edx, dword [esp + 0x30]
cmp byte [esp + 0xe7], 0x54
mov ecx, dword [esp + 0x2c]
je 0x4855b3
lea eax, [esp + 0xe7]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], ebx
call dword [8]
jmp 0x4854bc
mov edx, 1
jmp 0x485643
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], str.Compresssed_frame__s_tlen_d_dlen_ld_n
mov dword [esp + 4], 0x30
mov dword [esp + 0x14], eax
lea eax, [esp + 0xe7]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00acfa00
mov ecx, dword [esp + 0x50]
lea eax, [esp + 0xf8]
mov dword [esp + 4], eax
lea eax, [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00535690
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x50]
test eax, eax
je 0x4858e4
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046dfb0
test eax, eax
js 0x485889
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 8], eax
lea eax, [esp + 0xfc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00ea7450
test eax, eax
jne 0x4858c3
mov eax, dword [esp + 0xec]
mov dword [esp + 0x3c], eax
jmp 0x48560d
mov dword [esp + 0x48], ebp
mov eax, dword [esp + 0x3c]
mov ebp, ebx
mov dword [esp + 0x50], esi
mov ebx, edx
mov esi, ecx
mov dword [esp + 0x54], edi
jmp 0x4857fa
add ebx, 1
add esi, 1
cmp esi, ecx
jae 0x485837
lea edi, [eax + ebx]
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.0046df30
test ebx, ebx
mov byte [edi], al
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xfc]
je 0x485830
cmp byte [eax + ebx], 0
jne 0x4857f0
xor edx, edx
cmp byte [eax + ebx - 1], 0xff
setne dl
add ebx, edx
jmp 0x4857f3
mov ebx, 1
jmp 0x4857f3
mov edx, ebx
mov esi, dword [esp + 0x50]
mov ebx, ebp
mov edi, dword [esp + 0x54]
mov ecx, edx
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x48]
jmp 0x485677
mov dword [esp + 0x50], 0
xor ecx, ecx
jmp 0x48567b
mov eax, dword [esp + 0xfc]
mov dword [esp + 8], str.Failed_to_alloc__ld_bytes_n
mov dword [esp + 4], 0x10
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00acfa00
jmp 0x4854bc
mov dword [esp + 8], str.Failed_to_read_compressed_tag_n
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.00acfa00
jmp 0x4854bc
mov dword [esp + 8], str.invalid_frame_id__assuming_padding
mov dword [esp + 4], 0x18
mov dword [esp], ebx
call fcn.00acfa00
jmp 0x485525
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Failed_to_uncompress_tag:__d_n
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.00acfa00
jmp 0x4854bc
mov dword [esp + 0xc], ecx
mov dword [esp + 8], str.Failed_to_alloc__d_bytes_n
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call fcn.00acfa00
jmp 0x4854bc
cmp byte [esp + 0x5f], 4
ja 0x48521e
mov esi, dword [esp + 0x68]
and esi, 0x80
test byte [esp + 0x68], 0x40
mov dword [esp + 0x6c], esi
je 0x4859b8
mov esi, dword [ebx + 0x10]
mov dword [esp], esi
call fcn.0046df30
mov dword [esp], esi
mov ebp, eax
call fcn.0046df30
mov edx, ebp
and edx, 0x7f
shl edx, 7
mov dword [esp], esi
and eax, 0x7f
lea ebp, [edx + eax]
call fcn.0046df30
shl ebp, 7
mov dword [esp], esi
and eax, 0x7f
add ebp, eax
call fcn.0046df30
shl ebp, 7
and eax, 0x7f
add ebp, eax
mov eax, str.extended_header_too_short.
cmp ebp, 5
jle 0x485223
sub dword [esp + 0x38], ebp
js 0x4859d5
lea eax, [ebp - 4]
mov edx, eax
sar edx, 0x1f
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.0046c230
mov dword [esp + 0x58], 0xa
mov dword [esp + 0x40], 0xa
mov dword [esp + 0x44], 1
jmp 0x4852c0
mov dword [esp + 0x58], 0xa
mov dword [esp + 0x40], 0xa
mov dword [esp + 0x44], 1
jmp 0x4852c0
mov eax, str.extended_header_too_long.
jmp 0x485223