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

Disassembly:
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
push esi
xor eax, eax
cmp dword [ebp + 0x4cc4], 2
push edi
jne 0x4818c8
mov ebx, dword [ebp + 0x4cd8]
neg ebx
sbb ebx, ebx
and ebx, 0xfffffff1
add ebx, 0x20
jmp 0x4818da
xor ebx, ebx
cmp dword [ebp + 0x4cd8], eax
sete bl
lea ebx, [ebx*8 + 9]
cmp dword [ebp + 0x6d0c], eax
jne 0x4818fe
mov dword [ebp + 0x6d0c], 0x211
mov dword [ebp + 0x6d14], eax
mov dword [ebp + 0x6d10], eax
mov dword [ebp + 0x6d18], eax
lea eax, [ebx + 0x78]
cmp dword [ebp + 0x4d18], eax
jl 0x48201d
mov eax, 2
lea esi, [eax - 1]
cmp eax, ebx
jge 0x48192e
mov ecx, dword [ebp + 0x6c98]
nop
cmp byte [ecx + eax], 0
jne 0x48192c
add eax, esi
cmp eax, ebx
jl 0x481920
cmp eax, ebx
jne 0x48201d
mov ecx, dword [ebp + 0x6c98]
lea eax, [ecx + ebx]
mov cl, byte [eax]
mov dl, 0x6e
cmp cl, 0x49
jne 0x481957
cmp byte [eax + 1], dl
jne 0x481957
cmp byte [eax + 2], 0x66
jne 0x481957
cmp byte [eax + 3], 0x6f
je 0x481983
cmp cl, 0x58
jne 0x48201d
cmp byte [eax + 1], 0x69
jne 0x48201d
cmp byte [eax + 2], dl
jne 0x48201d
cmp byte [eax + 3], 0x67
jne 0x48201d
mov dword [ebp + 0x4d20], esi
test byte [ebp + 0x6d6c], 0x20
mov edi, dword [sym.imp.MSVCR100.dll_fprintf]
jne 0x4819ae
cmp dword [ebp + 0x6d68], esi
jle 0x4819ae
push str.Note:_Xing_Lame_Info_header_detected_n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call edi
add esp, 8
mov eax, dword [ebp + 0x6c98]
movzx edx, byte [eax + ebx + 4]
movzx ecx, byte [eax + ebx + 5]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax + ebx + 6]
shl edx, 8
or edx, ecx
movzx ecx, byte [eax + ebx + 7]
shl edx, 8
or edx, ecx
add ebx, 8
mov dword [esp + 0x34], edx
test dl, 1
je 0x481ac7
movzx ecx, byte [eax + ebx]
movzx esi, byte [eax + ebx + 1]
shl ecx, 8
or ecx, esi
movzx esi, byte [eax + ebx + 2]
movzx eax, byte [eax + ebx + 3]
shl ecx, 8
or ecx, esi
shl ecx, 8
or ecx, eax
mov dword [ebp + 0x4d78], ecx
cmp ecx, 0xe38e3
jbe 0x481a21
mov dword [ebp + 0x4d78], 0
mov ecx, dword [ebp + 0x6d6c]
test cl, 0x40
je 0x481a97
mov eax, dword [ebp + 0x4ce8]
cmp eax, 1
jne 0x481a3e
mov esi, 0x180
jmp 0x481a66
cmp eax, 2
jne 0x481a4a
mov esi, 0x480
jmp 0x481a66
cmp dword [ebp + 0x4cd8], 0
jne 0x481a61
cmp dword [ebp + 0x4cdc], 0
mov esi, 0x480
je 0x481a66
mov esi, 0x240
mov eax, dword [ebp + 0x4d78]
imul eax, esi
cmp eax, 1
jle 0x481a97
add eax, 0x211
mov dword [ebp + 0x6d14], eax
xor eax, eax
mov dword [ebp + 0x6d0c], 0x211
mov dword [ebp + 0x6d10], eax
mov dword [ebp + 0x6d18], eax
test cl, 0x20
jne 0x481ac4
cmp dword [ebp + 0x6d68], 2
jle 0x481ac4
mov ecx, dword [ebp + 0x4d78]
push ecx
push str.Note:_Xing:__lu_frames_n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call edi
mov edx, dword [esp + 0x40]
add esp, 0xc
add ebx, 4
test dl, 2
je 0x481bc9
mov eax, dword [ebp + 0x6c98]
movzx esi, byte [eax + ebx]
movzx ecx, byte [eax + ebx + 1]
add eax, ebx
shl esi, 8
or esi, ecx
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl esi, 8
or esi, ecx
shl esi, 8
or esi, eax
mov eax, dword [ebp + 0x6d24]
mov dword [esp + 0x18], eax
cmp eax, 1
jge 0x481b12
mov dword [ebp + 0x6d24], esi
jmp 0x481b9b
cmp esi, eax
je 0x481b9b
test byte [ebp + 0x6d6c], 0x20
jne 0x481bc6
sub eax, esi
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fidiv dword [esp + 0x18]
fst qword [esp + 0x18]
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x481b4a
fchs
fst qword [esp + 0x18]
cmp dword [ebp + 0x6d68], 2
jle 0x481b76
sub esp, 8
fstp qword [esp]
push esi
push str.Note:_Xing_stream_size__lu_differs_by__f___from_determined_given_file_size__n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call edi
fld qword [esp + 0x2c]
mov edx, dword [esp + 0x48]
add esp, 0x14
fcomp qword [0x532fc0]
fnstsw ax
test ah, 0x41
jne 0x481b9b
push str.Warning:_Xing_stream_size_off_by_more_than_1____fuzzy_seeking_may_be_even_more_fuzzy_than_by_design__n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call edi
mov edx, dword [esp + 0x3c]
add esp, 8
test byte [ebp + 0x6d6c], 0x20
jne 0x481bc6
cmp dword [ebp + 0x6d68], 2
jle 0x481bc6
push esi
push str.Note:_Xing:__lu_bytes_n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call edi
mov edx, dword [esp + 0x40]
add esp, 0xc
add ebx, 4
test dl, 4
je 0x481c10
mov esi, dword [ebp + 0x6c98]
add esi, ebx
cmp dword [ebp + 0x4d34], 0
jne 0x481bf4
push 0x64
call dword [sym.imp.MSVCR100.dll_malloc]
mov edx, dword [esp + 0x38]
add esp, 4
mov dword [ebp + 0x4d34], eax
mov eax, dword [ebp + 0x4d34]
test eax, eax
je 0x481c0d
mov ecx, 0x19
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [sym.imp.MSVCR100.dll_fprintf]
add ebx, 0x64
test dl, 8
je 0x481c67
test byte [ebp + 0x6d6c], 0x20
jne 0x481c64
cmp dword [ebp + 0x6d68], 2
jle 0x481c64
mov ecx, dword [ebp + 0x6c98]
movzx eax, byte [ecx + ebx]
movzx edx, byte [ecx + ebx + 1]
add ecx, ebx
shl eax, 8
or eax, edx
movzx edx, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
push eax
push str.Note:_Xing:_quality___lu_n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call edi
add esp, 0xc
add ebx, 4
mov eax, dword [ebp + 0x6c98]
add eax, ebx
cmp byte [eax], 0
je 0x481feb
test byte [ebp + 0x6d6c], 0x20
fldz
mov ecx, dword [eax]
fstp dword [esp + 0x18]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov al, byte [eax + 8]
mov byte [esp + 0x2c], al
mov byte [esp + 0x2d], 0
jne 0x481cc4
cmp dword [ebp + 0x6d68], 2
jle 0x481cc4
lea ecx, [esp + 0x24]
push ecx
push str.Note:_Info:_Encoder:__s_n
call esi
add eax, 0x40
push eax
call edi
add esp, 0xc
push 4
lea edx, [esp + 0x28]
push edx
push str.LAME
call dword [sym.imp.MSVCR100.dll_strncmp]
mov eax, dword [ebp + 0x6c98]
mov cl, byte [ebx + eax + 9]
mov al, cl
and al, 0xf
add esp, 0xc
test byte [ebp + 0x6d6c], 0x20
mov byte [esp + 0x34], al
jne 0x481d2e
cmp dword [ebp + 0x6d68], 2
jle 0x481d2e
movzx ecx, cl
shr ecx, 4
push ecx
push str.Note:_Info:_rev__u_n
call esi
add eax, 0x40
push eax
call edi
movzx edx, byte [esp + 0x40]
add esp, 0xc
push edx
push str.Note:_Info:_vbr_mode__u_n
call esi
add eax, 0x40
push eax
call edi
mov al, byte [esp + 0x40]
add esp, 0xc
movzx eax, al
dec eax
cmp eax, 8
ja case.0x481d3e.3
movzx eax, byte [eax + 0x482034]
jmp dword [eax*4 + 0x482028]
mov dword [ebp + 0x4d20], 0
jmp 0x481d67
mov dword [ebp + 0x4d20], 2
jmp 0x481d67
mov dword [ebp + 0x4d20], 1
test byte [ebp + 0x6d6c], 0x20
jne 0x481d91
cmp dword [ebp + 0x6d68], 2
jle 0x481d91
fldz
sub esp, 8
fstp qword [esp]
push str.Note:_Info:_peak___f__I_wont_use_this__n
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
mov esi, dword [ebp + 0x6c98]
fld qword [0x533d50]
mov al, byte [esi + ebx + 0xf]
fld qword [0x533cb8]
add ebx, 0xf
test al, 0x1c
je 0x481ddd
mov cl, al
shr cl, 5
cmp cl, 1
je 0x481dbd
cmp cl, 2
jne 0x481de0
test al, 2
je 0x481dc5
fld st(1)
jmp 0x481dc7
fld st(0)
mov cl, byte [esi + ebx + 1]
and cl, 0x1f
movzx edx, cl
mov dword [esp + 0x34], edx
fimul dword [esp + 0x34]
fstp dword [esp + 0x18]
add ebx, 2
mov cl, byte [esi + ebx]
test cl, 0x1c
je 0x481e1a
mov al, cl
shr al, 5
cmp al, 1
je 0x481df5
cmp al, 2
jne 0x481e23
test cl, 2
je 0x481dfe
fstp st(0)
jmp 0x481e00
fstp st(1)
mov al, byte [esi + ebx + 1]
and al, 0x1f
movzx ecx, al
mov dword [esp + 0x34], ecx
add ebx, 2
fimul dword [esp + 0x34]
fstp dword [esp + 0x18]
jmp 0x481e27
fstp st(1)
add ebx, 2
fstp st(0)
jmp 0x481e27
fstp st(1)
fstp st(0)
test byte [ebp + 0x6d6c], 0x20
jne 0x481e6e
cmp dword [ebp + 0x6d68], 2
jle 0x481e6e
fld dword [esp + 0x18]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
sub esp, 8
fstp qword [esp]
push str.Note:_Info:_Radio_Gain___03.1fdB_n
call esi
add eax, 0x40
push eax
call edi
fldz
add esp, 8
fstp qword [esp]
push str.Note:_Info:_Audiophile_Gain___03.1fdB_n
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
fldz
xor eax, eax
cmp dword [ebp + 0x4d60], eax
jg 0x481e90
fst dword [ebp + 0x4d70]
mov dword [ebp + 0x4d60], eax
fld dword [esp + 0x18]
fstp dword [ebp + 0x4d68]
cmp dword [ebp + 0x4d64], eax
jg 0x481eac
fst dword [ebp + 0x4d74]
mov dword [ebp + 0x4d64], eax
fstp dword [ebp + 0x4d6c]
jmp 0x481eae
fstp st(0)
mov ecx, 2
cmp dword [ebp + 0x4d20], ecx
jne 0x481ef2
test byte [ebp + 0x6d6c], 0x20
mov edx, dword [ebp + 0x6c98]
movzx eax, byte [edx + ebx + 1]
mov dword [ebp + 0x6cac], eax
jne 0x481ef2
cmp dword [ebp + 0x6d68], ecx
jle 0x481ef2
push eax
push str.Note:_Info:_ABR_rate___u_n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call edi
add esp, 0xc
add ebx, 2
test byte [ebp + 0x6d6c], 0x20
jne 0x481f46
cmp dword [ebp + 0x6d68], 2
jle 0x481f46
mov ecx, dword [ebp + 0x6c98]
movzx eax, byte [ecx + ebx + 1]
movzx edx, byte [ecx + ebx + 2]
movzx ecx, byte [ecx + ebx]
mov esi, eax
shl esi, 8
or edx, esi
and edx, 0xfff
shl ecx, 4
shr eax, 4
push edx
or ecx, eax
push ecx
push str.Note:_Encoder_delay___i__padding___i_n
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
push eax
call edi
add esp, 0x10
test byte [ebp + 0x6d6c], 0x40
je 0x481feb
mov eax, dword [ebp + 0x4ce8]
cmp eax, 1
jne 0x481f65
mov eax, 0x180
jmp 0x481f8d
cmp eax, 2
jne 0x481f71
mov eax, 0x480
jmp 0x481f8d
cmp dword [ebp + 0x4cd8], 0
jne 0x481f88
cmp dword [ebp + 0x4cdc], 0
mov eax, 0x480
je 0x481f8d
mov eax, 0x240
add ebx, dword [ebp + 0x6c98]
mov ecx, dword [ebp + 0x4d78]
movzx esi, byte [ebx + 1]
imul ecx, eax
movzx edx, byte [ebx]
mov eax, esi
shr eax, 4
shl edx, 4
or edx, eax
movzx eax, byte [ebx + 2]
shl esi, 8
or eax, esi
and eax, 0xfff
add edx, 0x211
sub eax, 0x211
cmp ecx, 1
jle 0x481feb
cmp eax, ecx
jge 0x481fd1
sub ecx, eax
xor eax, eax
mov dword [ebp + 0x6d0c], edx
mov dword [ebp + 0x6d14], ecx
mov dword [ebp + 0x6d10], eax
mov dword [ebp + 0x6d18], eax
mov eax, dword [ebp + 0x6ca0]
mov ecx, eax
imul ecx, ecx, 0xf80
dec eax
and eax, 1
lea edx, [ecx + ebp + 0x4f98]
mov dword [ebp + 0x6ca0], eax
mov dword [ebp + 0x6c98], edx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret