Function at 0x40a510
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push esi
push edi
push ebx
sub esp, 0x534
mov esi, edx
mov edx, dword [0x52cfb4]
mov ebx, ecx
xor edx, esp
lea ecx, [esp + 0xf0]
mov dword [ecx + 0x404], edx
mov edi, eax
push 0x401
push 0
push ecx
call fcn.0048a380
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
push edi
mov edx, dword [ebx]
mov dword [esp + 0xe8], edx
xor edx, edx
mov byte [eax], dl
mov byte [ecx], dl
mov dword [0x52ef48], edx
mov dword [0x52ef4c], 1
mov dword [0x5410e0], edx
mov dword [0x5410e4], edx
mov dword [0x5410e8], edx
mov dword [0x52ef50], edx
call fcn.00429280
add esp, 0x10
cmp esi, 1
jle 0x40abd8
xor edx, edx
mov ecx, 2
mov dword [esp + 0xd0], edx
pxor xmm1, xmm1
mov dword [esp + 0xe0], edx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xe8], 1
movsd xmm7, qword [0x4b5230]
movsd xmm6, qword [0x4b5288]
movsd xmm5, qword [0x4b5238]
movsd xmm4, qword [0x4b5240]
movsd xmm3, qword [0x4b5248]
movsd xmm2, qword [0x4b5250]
movsd xmm0, qword [0x4b5258]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xcc], edi
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe4], ebx
mov ebx, edx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe8]
mov esi, dword [eax + ecx*4]
cmp byte [esi], 0x2d
je 0x40adad
cmp dword [esp + 0xe0], 0
jne 0x40ad0c
mov eax, dword [ebp + 0x14]
cmp byte [eax], 0
je 0x40a6a5
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
jne 0x40acbb
push 0x401
mov eax, dword [esp + 0xe8]
push dword [eax + ecx*4]
push dword [ebp + 0x18]
call fcn.0049d3a0
add esp, 0xc
mov eax, dword [esp + 0xe8]
lea edi, [eax + 1]
mov dword [esp + 0xe8], edi
cmp edi, dword [esp + 0xdc]
jl 0x40a633
jmp 0x40a6e7
push 0x401
mov eax, dword [esp + 0xe8]
mov edx, ecx
push dword [eax + edx*4]
push dword [ebp + 0x14]
call fcn.0049d3a0
add esp, 0xc
mov eax, dword [esp + 0xe8]
inc eax
mov dword [esp + 0xe8], eax
cmp eax, dword [esp + 0xdc]
jge 0x40ad00
mov ebx, 1
jmp 0x40a633
mov edx, ebx
mov edi, dword [esp + 0xcc]
test edx, edx
je 0x40abd8
push edi
call fcn.004158c0
add esp, 4
test eax, eax
je 0x40a74e
cmp dword [esp + 0xc4], 0
jle 0x40a74e
push str.combination_of_nogap_and_decode_not_supported__n
call fcn.004023b0
add esp, 4
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
cmp byte [edx], 0x2d
jne 0x40a76b
cmp dword [0x52ef48], 0
jne 0x40a776
mov dword [0x52ef48], 1
jmp 0x40a776
push dword [ebp + 0x14]
call fcn.00409a30
add esp, 4
mov edx, dword [ebp + 0x18]
cmp byte [edx], 0
jne 0x40a7ee
cmp dword [esp + 0xc4], 0
jle 0x40a7ac
push 0x400
lea edx, [esp + 0xf4]
push edx
push dword [ebp + 0x18]
call fcn.0049d3a0
add esp, 0xc
mov edx, dword [ebp + 0x18]
mov byte [edx + 0x400], 0
jmp 0x40a7ee
mov edx, dword [ebp + 0x14]
cmp byte [edx], 0x2d
je 0x40aca9
push edi
call fcn.004158c0
add esp, 4
test eax, eax
mov ebx, str..wav
mov ecx, str..mp3
lea edx, [esp + 0xf0]
mov esi, dword [ebp + 0x18]
cmovne ecx, ebx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], esi
call fcn.0040f9cc
test eax, eax
jne 0x40abaa
cmp dword [esp + 0xc8], 0
jne 0x40a803
push 1
push edi
call fcn.00415a70
add esp, 8
cmp dword [esp + 0xe0], 0
je 0x40a839
push edi
call fcn.00415870
add esp, 4
test eax, eax
je 0x40a839
cmp dword [esp + 0xbc], 0
jne 0x40a839
push str.Note:_Disabling_VBR_Xing_Info_tag_since_it_interferes_with___nogap_n
call fcn.00402270
push 0
push edi
call fcn.00415840
add esp, 0xc
mov edx, dword [ebp + 0x18]
cmp byte [edx], 0x2d
je 0x40ac99
cmp dword [0x52ef30], 0
jne 0x40ab31
mov edx, dword [ebp + 0x14]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40a879
mov eax, edx
add edx, ecx
call fcn.0048a3b0
cmp eax, 4
jae 0x40a885
xor edx, edx
jmp 0x40ab2b
mov edx, dword [ebp + 0x14]
mov esi, str..mpg
mov dword [esp + 0xcc], edi
lea eax, [edx + eax - 4]
mov ebx, eax
mov edx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
movsx eax, byte [ebx]
push eax
call fcn.0049e2aa
movsx edx, byte [esi]
push edx
movzx edi, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test edi, edi
je 0x40a8c9
inc ebx
inc esi
cmp edi, eax
je 0x40a8a4
mov edx, dword [esp + 0x14]
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov ecx, edi
mov edi, dword [esp + 0xcc]
cmp ebx, ecx
jne 0x40a8ea
mov edx, 7
jmp 0x40ab2b
mov ecx, edx
mov ebx, str..mp1
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0xcc], edi
mov edi, ecx
movsx eax, byte [edi]
push eax
call fcn.0049e2aa
movsx edx, byte [ebx]
push edx
movzx esi, al
call fcn.0049e2aa
movzx ecx, al
add esp, 8
test esi, esi
je 0x40a927
inc edi
inc ebx
cmp esi, ecx
je 0x40a902
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xcc]
cmp ecx, esi
je 0x40a8e0
mov ecx, edx
mov esi, str..mp2
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0xcc], edi
mov edi, ecx
movsx eax, byte [edi]
push eax
call fcn.0049e2aa
movsx edx, byte [esi]
push edx
movzx ebx, al
call fcn.0049e2aa
movzx ecx, al
add esp, 8
test ebx, ebx
je 0x40a977
inc edi
inc esi
cmp ebx, ecx
je 0x40a952
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xcc]
cmp ecx, ebx
je 0x40a8e0
mov ecx, edx
mov esi, str..mp3
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0xcc], edi
mov edi, ecx
movsx eax, byte [edi]
push eax
call fcn.0049e2aa
movsx edx, byte [esi]
push edx
movzx ebx, al
call fcn.0049e2aa
movzx ecx, al
add esp, 8
test ebx, ebx
je 0x40a9cb
inc edi
inc esi
cmp ebx, ecx
je 0x40a9a6
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xcc]
cmp ecx, ebx
je 0x40a8e0
mov ecx, edx
mov esi, str..wav
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0xcc], edi
mov edi, ecx
movsx eax, byte [edi]
push eax
call fcn.0049e2aa
movsx edx, byte [esi]
push edx
movzx ebx, al
call fcn.0049e2aa
movzx ecx, al
add esp, 8
test ebx, ebx
je 0x40aa1f
inc edi
inc esi
cmp ebx, ecx
je 0x40a9fa
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xcc]
cmp ecx, ebx
jne 0x40aa3c
mov edx, 2
jmp 0x40ab2b
mov ecx, edx
mov esi, str..aif
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0xcc], edi
mov edi, ecx
movsx eax, byte [edi]
push eax
call fcn.0049e2aa
movsx edx, byte [esi]
push edx
movzx ebx, al
call fcn.0049e2aa
movzx ecx, al
add esp, 8
test ebx, ebx
je 0x40aa79
inc edi
inc esi
cmp ebx, ecx
je 0x40aa54
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xcc]
cmp ecx, ebx
jne 0x40aa96
mov edx, 3
jmp 0x40ab2b
mov ecx, str..raw
mov esi, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0xcc], edi
mov edi, ecx
movsx eax, byte [esi]
push eax
call fcn.0049e2aa
movsx edx, byte [edi]
push edx
movzx ebx, al
call fcn.0049e2aa
movzx ecx, al
add esp, 8
test ebx, ebx
je 0x40aacf
inc esi
inc edi
cmp ebx, ecx
je 0x40aaaa
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xcc]
cmp ecx, ebx
jne 0x40aae5
mov edx, 1
jmp 0x40ab2b
mov dword [esp + 0xcc], edi
mov ebx, str..ogg
mov edi, eax
movsx edx, byte [edi]
push edx
call fcn.0049e2aa
movsx edx, byte [ebx]
push edx
movzx esi, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test esi, esi
je 0x40ab18
inc edi
inc ebx
cmp esi, eax
je 0x40aaf3
mov edi, dword [esp + 0xcc]
mov ecx, 8
xor edx, edx
cmp eax, esi
cmove edx, ecx
mov dword [0x52ef30], edx
cmp dword [esp + 0xd0], 0
jne 0x40ab4d
push edi
call fcn.00415970
add esp, 4
cmp eax, 3
je 0x40ac8c
push 2
push edi
call fcn.004156c0
add esp, 8
push edi
call fcn.00415a10
add esp, 4
test eax, eax
jne 0x40ac32
cmp dword [ebp + 0x20], 0
je 0x40ab7b
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0xc4]
mov dword [edx], eax
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
xor eax, eax
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, dword [0x541128]
mov eax, ebx
call fcn.0040f330
mov edx, dword [esp + 0xd8]
push edx
push edx
push edx
push edx
push edx
push str.usage:__s__options___infile___outfile__n_n_____infile__and_or__outfile__can_be______which_means_stdin_stdout._n_nTry:_n_______s___help____________for_general_usage_information_n_or:_n_______s___preset_help_____for_information_on_suggested_predefined_settings_n_or:_n_______s___longhelp__n__or___s__________________for_a_complete_options_list_n_n
push ebx
call fcn.0040f2f0
add esp, 0x1c
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.00497ce0
push edi
call fcn.00415ba0
add esp, 4
cmp eax, 8
jl 0x40ac54
push edi
call fcn.00415ba0
add esp, 4
cmp eax, 0x280
jle 0x40ab69
push str.For_free_format__specify_a_bitrate_between_8_and_640_kbps_n
call fcn.004023b0
push str.with_the__b__bitrate__option_n
call fcn.004023b0
add esp, 8
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
push 1
push edi
call fcn.004156c0
jmp 0x40ab55
push 0
push edi
call fcn.00415840
add esp, 8
jmp 0x40a845
mov ecx, dword [ebp + 0x18]
movzx edx, word [0x4b45a4]
mov word [ecx], dx
jmp 0x40a7ee
mov eax, ecx
mov ebx, dword [esp + 0xe4]
push dword [ebx + eax*4]
push dword [esp + 0xdc]
push str._s:_excess_arg__s_n
call fcn.004023b0
add esp, 0xc
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
mov edi, dword [esp + 0xcc]
jmp 0x40a6f8
cmp dword [ebp + 0x20], 0
je 0x40ad6c
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0xc4]
cmp eax, dword [edx]
jge 0x40ad6c
push 0x401
mov eax, dword [esp + 0xe8]
mov edx, ecx
mov ecx, dword [ebp + 0x1c]
push dword [eax + edx*4]
mov ebx, dword [esp + 0xcc]
push dword [ecx + ebx*4]
inc ebx
mov dword [esp + 0xd0], ebx
call fcn.0049d3a0
add esp, 0xc
mov eax, dword [esp + 0xe8]
inc eax
mov dword [esp + 0xe8], eax
cmp eax, dword [esp + 0xdc]
jl 0x40a6dd
jmp 0x40ad00
push str.Error:_nogap_option.__Calling_program_does_not_allow_nogap_option__or_nyou_have_exceeded_maximum_number_of_input_files_for_the_nogap_option_n
call fcn.004023b0
add esp, 4
cmp dword [ebp + 0x20], 0
je 0x40ad88
mov eax, dword [ebp + 0x20]
mov dword [eax], 0xffffffff
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
lea edi, [ecx + 1]
cmp edi, dword [esp + 0xdc]
jge 0x40adcf
mov ecx, eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [ecx + eax*4 + 4]
mov dword [esp + 0xd4], ecx
jmp 0x40adda
mov dword [esp + 0xd4], 0x4b4310
movsx ecx, byte [esi + 1]
test ecx, ecx
jne 0x40ae43
mov edx, dword [ebp + 0x14]
cmp byte [edx], 0
je 0x40ae19
mov edx, dword [ebp + 0x18]
cmp byte [edx], 0
je 0x40adf9
mov ebx, 1
jmp 0x40ae43
push 0x401
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
push dword [edx + ecx*4]
push dword [ebp + 0x18]
call fcn.0049d3a0
jmp 0x40ae37
push 0x401
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
push dword [edx + ecx*4]
push dword [ebp + 0x14]
call fcn.0049d3a0
add esp, 0xc
movsx ecx, byte [esi + 1]
mov ebx, 1
cmp ecx, 0x2d
je 0x40b596
add esi, 2
test ecx, ecx
je 0x40a693
xor eax, eax
mov dword [esp + 0xc0], ebx
xor edi, edi
cmp byte [esi], 0
lea edx, [ecx - 0x3f]
mov ebx, dword [esp + 0xd4]
cmovne ebx, esi
cmp edx, 0x39
ja 0x40b495
movzx eax, word [edx*2 + 0x4b52a0]
add eax, 0x40ae8a
jmp eax
push ecx
push dword [esp + 0xdc]
push str._s:_unrecognized_option___c_n
call fcn.004023b0
add esp, 0xc
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
add esi, 2
mov edx, str.resample
mov eax, esi
call fcn.0040f0a0
test eax, eax
jne 0x40b6a0
mov dword [esp + 0x88], 0
lea ecx, [esp + 0x88]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
fstp qword [esp + 0x88]
movsd xmm0, qword [esp + 0x88]
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40de25
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x88]
je 0x40de25
comisd xmm0, xmmword [0x4b5240]
jb 0x40b613
mulsd xmm0, qword [0x4b5248]
cvttsd2si eax, xmm0
add eax, 0xfffffff8
cmp eax, 0x28
ja 0x40b665
movzx eax, byte [eax + str.N88188888888]
add eax, 0x40b62d
jmp eax
mov dword [esp], str.Illegal_resample_frequency:__.3f_kHz_n
movsd qword [esp + 4], xmm0
call fcn.004023b0
xor eax, eax
jmp 0x40b680
push eax
push dword [esp + 0xd0]
call fcn.004157d0
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.vbr_old
call fcn.0040f0a0
test eax, eax
jne 0x40b6d1
push 2
push dword [esp + 0xd0]
call fcn.00415e40
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.vbr_new
call fcn.0040f0a0
test eax, eax
jne 0x40b702
push 1
push dword [esp + 0xd0]
call fcn.00415e40
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.vbr_mtrh
call fcn.0040f0a0
test eax, eax
jne 0x40b733
push 4
push dword [esp + 0xd0]
call fcn.00415e40
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b96f8
call fcn.0040f0a0
test eax, eax
jne 0x40b764
push 0
push dword [esp + 0xd0]
call fcn.00415e40
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b9b74
call fcn.0040f0a0
test eax, eax
jne 0x40b82b
mov dword [esp + 0x70], 0
lea ecx, [esp + 0x70]
push 0xa
push ecx
push dword [esp + 0xdc]
call fcn.004a1d43
add esp, 0xc
mov dword [esp + 0x74], eax
cmp dword [esp + 0xd4], 0
je 0x40de40
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x70]
je 0x40de40
cmp dword [esp + 0x74], 0x1f40
jl 0x40b7e0
mov ecx, eax
mov eax, 0x10624dd3
add ecx, 0x1f4
imul ecx
sar ecx, 0x1f
sar edx, 6
neg ecx
add ecx, edx
mov dword [esp + 0x74], ecx
push 3
push dword [esp + 0xd0]
call fcn.00415e40
mov ecx, dword [esp + 0x7c]
mov eax, 0x140
cmp ecx, 0x140
cmovg ecx, eax
mov esi, 8
cmp ecx, 8
cmovge esi, ecx
push esi
push dword [esp + 0xd8]
call fcn.00415fe0
add esp, 0x10
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.r3mix
call fcn.0040f0a0
test eax, eax
jne 0x40b85f
push 0x3e8
push dword [esp + 0xd0]
call fcn.00416910
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.bitwidth
call fcn.0040f0a0
test eax, eax
jne 0x40b8c1
mov dword [esp + 0x6c], 0
lea ecx, [esp + 0x6c]
push 0xa
push ecx
push dword [esp + 0xdc]
call fcn.004a1d43
add esp, 0xc
cmp dword [esp + 0xd4], 0
je 0x40de5b
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x6c]
je 0x40de5b
mov dword [section..data], eax
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.signed
call fcn.0040f0a0
test eax, eax
jne 0x40b8eb
mov dword [0x52c004], 1
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.unsigned
call fcn.0040f0a0
test eax, eax
jne 0x40b915
mov dword [0x52c004], 0
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.little_endian
call fcn.0040f0a0
test eax, eax
jne 0x40b93f
mov dword [0x52c008], 0
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.big_endian
call fcn.0040f0a0
test eax, eax
jne 0x40b969
mov dword [0x52c008], 1
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.mp1input
call fcn.0040f0a0
test eax, eax
jne 0x40b993
mov dword [0x52ef30], 4
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.mp2input
call fcn.0040f0a0
test eax, eax
jne 0x40b9bd
mov dword [0x52ef30], 5
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.mp3input
call fcn.0040f0a0
test eax, eax
jne 0x40b9e7
mov dword [0x52ef30], 6
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.ogginput
call fcn.0040f0a0
test eax, eax
je 0x40f067
mov eax, esi
mov edx, str.decode
call fcn.0040f0a0
test eax, eax
jne 0x40ba2c
push 1
push dword [esp + 0xd0]
call fcn.00415890
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.flush
call fcn.0040f0a0
test eax, eax
jne 0x40ba56
mov dword [0x52ef44], 1
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.decode_mp3delay
call fcn.0040f0a0
test eax, eax
jne 0x40bac2
mov dword [esp + 0x68], 0
lea ecx, [esp + 0x68]
push 0xa
push ecx
push dword [esp + 0xdc]
call fcn.004a1d43
add esp, 0xc
cmp dword [esp + 0xd4], 0
je 0x40de76
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x68]
je 0x40de76
mov dword [0x5410e0], eax
mov dword [0x5410e4], 1
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.nores
call fcn.0040f0a0
test eax, eax
jne 0x40baf3
push 1
push dword [esp + 0xd0]
call fcn.00415cb0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.strictly_enforce_ISO
call fcn.0040f0a0
test eax, eax
jne 0x40bb24
push 1
push dword [esp + 0xd0]
call fcn.00415c80
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.buffer_constraint
call fcn.0040f0a0
test eax, eax
jne 0x40bc42
mov esi, str.default
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40bb64
test dl, dl
je 0x40bb60
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40bb64
add edi, 2
add esi, 2
test dl, dl
jne 0x40bb44
xor eax, eax
jmp 0x40bb69
sbb eax, eax
or eax, 1
test eax, eax
je 0x40bc21
mov esi, str.strict
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40bb9d
test dl, dl
je 0x40bb99
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40bb9d
add edi, 2
add esi, 2
test dl, dl
jne 0x40bb7d
xor eax, eax
jmp 0x40bba2
sbb eax, eax
or eax, 1
test eax, eax
je 0x40bc00
mov esi, str.maximum
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40bbd2
test dl, dl
je 0x40bbce
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40bbd2
add edi, 2
add esi, 2
test dl, dl
jne 0x40bbb2
xor eax, eax
jmp 0x40bbd7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40de94
push 2
push dword [esp + 0xd0]
call fcn.00415c80
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
push 1
push dword [esp + 0xd0]
call fcn.00415c80
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
push 0
push dword [esp + 0xd0]
call fcn.00415c80
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.scale
call fcn.0040f0a0
test eax, eax
jne 0x40bcb0
mov dword [esp + 0x64], 0
lea ecx, [esp + 0x64]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40dece
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x64]
je 0x40dece
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
fstp dword [esp + 4]
call fcn.00415710
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.scale_l
call fcn.0040f0a0
test eax, eax
jne 0x40bd1e
mov dword [esp + 0x60], 0
lea ecx, [esp + 0x60]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40deee
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x60]
je 0x40deee
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
fstp dword [esp + 4]
call fcn.00415770
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.scale_r
call fcn.0040f0a0
test eax, eax
jne 0x40bd8c
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x5c]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40df0e
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x5c]
je 0x40df0e
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
fstp dword [esp + 4]
call fcn.004157a0
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.gain
call fcn.0040f0a0
test eax, eax
jne 0x40be39
mov dword [esp + 0x58], 0
lea ecx, [esp + 0x58]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
fstp qword [esp + 0x88]
movsd xmm1, qword [esp + 0x88]
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40df2e
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x58]
je 0x40df2e
movsd xmm0, qword [0x4b5268]
maxsd xmm1, qword [0x4b5278]
minsd xmm1, qword [0x4b5280]
mulsd xmm1, qword [0x4b5270]
call fcn.004864a0
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
movss dword [esp + 4], xmm0
call fcn.00415710
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.noasm
call fcn.0040f0a0
test eax, eax
jne 0x40bf39
mov esi, 0x4b93fc
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40be79
test dl, dl
je 0x40be75
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40be79
add edi, 2
add esi, 2
test dl, dl
jne 0x40be59
xor eax, eax
jmp 0x40be7e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40be95
push 0
push 1
push dword [esp + 0xd4]
call fcn.00416950
add esp, 0xc
mov esi, str.3dnow
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40bec1
test dl, dl
je 0x40bebd
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40bec1
add edi, 2
add esi, 2
test dl, dl
jne 0x40bea1
xor eax, eax
jmp 0x40bec6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40bedd
push 0
push 2
push dword [esp + 0xd4]
call fcn.00416950
add esp, 0xc
mov esi, 0x4b9408
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40bf09
test dl, dl
je 0x40bf05
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40bf09
add edi, 2
add esi, 2
test dl, dl
jne 0x40bee9
xor eax, eax
jmp 0x40bf0e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40b690
push 0
push 3
push dword [esp + 0xd4]
call fcn.00416950
add esp, 0xc
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.freeformat
call fcn.0040f0a0
test eax, eax
jne 0x40bf6a
push 1
push dword [esp + 0xd0]
call fcn.004159e0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.replaygain_fast
call fcn.0040f0a0
test eax, eax
jne 0x40bf9b
push 1
push dword [esp + 0xd0]
call fcn.00415a70
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.noreplaygain
call fcn.0040f0a0
test eax, eax
jne 0x40bfd7
push 0
push dword [esp + 0xd0]
call fcn.00415a70
add esp, 8
mov dword [esp + 0xb4], 0
mov dword [esp + 0xc8], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.nohist
call fcn.0040f0a0
test eax, eax
jne 0x40c001
mov dword [0x52ef4c], 0
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, esi
mov edx, str.priority
call fcn.0040f0a0
test eax, eax
jne 0x40c067
mov dword [esp + 0x54], 0
lea ecx, [esp + 0x54]
push 0xa
push ecx
push dword [esp + 0xdc]
call fcn.004a1d43
add esp, 0xc
cmp dword [esp + 0xd4], 0
je 0x40df4c
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x54]
je 0x40df4c
push eax
call fcn.00409c70
add esp, 4
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.id3v2_utf16
call fcn.0040f0a0
test eax, eax
je 0x40dde9
mov eax, esi
mov edx, str.id3v2_ucs2
call fcn.0040f0a0
test eax, eax
je 0x40dde9
mov eax, esi
mov edx, str.id3v2_latin1
call fcn.0040f0a0
test eax, eax
jne 0x40c0c9
push dword [esp + 0xcc]
call fcn.00424e10
add esp, 4
mov dword [esp + 0xb4], 0
mov dword [esp + 0xac], 1
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b9a18
call fcn.0040f0a0
test eax, eax
jne 0x40c10c
mov esi, dword [esp + 0xd4]
mov edx, 0x74
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xac]
call fcn.0040f140
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b9a14
call fcn.0040f0a0
test eax, eax
jne 0x40c14f
mov esi, dword [esp + 0xd4]
mov edx, 0x61
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xac]
call fcn.0040f140
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b9a10
call fcn.0040f0a0
test eax, eax
jne 0x40c192
mov esi, dword [esp + 0xd4]
mov edx, 0x6c
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xac]
call fcn.0040f140
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b9a0c
call fcn.0040f0a0
test eax, eax
jne 0x40c1d5
mov esi, dword [esp + 0xd4]
mov edx, 0x79
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xac]
call fcn.0040f140
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b9a08
call fcn.0040f0a0
test eax, eax
jne 0x40c218
mov esi, dword [esp + 0xd4]
mov edx, 0x63
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xac]
call fcn.0040f140
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b9a04
call fcn.0040f0a0
test eax, eax
jne 0x40c2d9
mov esi, dword [esp + 0xd4]
mov edx, 0x6e
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xac]
call fcn.0040f140
test eax, eax
je 0x40b690
cmp dword [esp + 0xb8], 0
jne 0x40b690
cmp dword [esp + 0xb0], 1
jne 0x40c2ae
cmp dword [0x52ef48], 9
jl 0x40df6a
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0xb0], 2
je 0x40b690
cmp dword [0x52ef48], 9
jl 0x40df7c
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, 0x4b9a00
call fcn.0040f0a0
test eax, eax
jne 0x40c469
cmp dword [esp + 0xd4], 0
je 0x40b690
mov edx, dword [esp + 0xd4]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40c326
mov eax, edx
add edx, ecx
call fcn.0048a3b0
test eax, eax
jbe 0x40b690
mov esi, dword [esp + 0xd4]
mov edx, 0x67
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xac]
call fcn.0040f140
test eax, eax
je 0x40b690
cmp dword [esp + 0xb8], 0
jne 0x40b690
cmp eax, 0xffffffff
jne 0x40c3ae
mov ebx, esi
push ebx
push str.Unknown_ID3v1_genre_number:__s._n
call fcn.004023b0
add esp, 8
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xfffffffe
je 0x40c3f2
cmp dword [0x52ef48], 0xa
jl 0x40df99
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0xb0], 1
jne 0x40c43e
mov ebx, esi
push ebx
push str.Unknown_ID3v1_genre:__s._n
call fcn.004023b0
add esp, 8
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0xb0], 2
je 0x40b690
cmp dword [0x52ef48], 9
jl 0x40dfab
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edi, 0x4b99fc
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], esi
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c4a4
inc esi
inc edi
cmp ebx, eax
je 0x40c47f
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c4fd
mov esi, dword [esp + 0xd4]
mov edx, 0x76
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xac]
call fcn.0040f140
test eax, eax
je 0x40b690
cmp dword [0x52ef48], 9
jl 0x40dfcf
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, 0x4b99f8
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c538
inc esi
inc edi
cmp ebx, eax
je 0x40c513
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c699
cmp dword [esp + 0xd4], 0
je 0x40b690
push 0x4b4900
push dword [esp + 0xd8]
call fcn.00409eb0
mov esi, eax
add esp, 8
test esi, esi
jne 0x40c582
mov dword [esp + 0x48], 1
jmp 0x40c617
push 2
push 0
push esi
call fcn.0049cd22
push esi
call fcn.0049ca5d
mov edi, eax
xor eax, eax
push eax
push eax
push esi
call fcn.0049cd22
push edi
call fcn.0049d38a
mov dword [esp + 0x64], eax
add esp, 0x20
cmp dword [esp + 0x44], 0
jne 0x40c5bc
mov dword [esp + 0x48], 2
jmp 0x40c60e
push esi
push edi
push 1
push dword [esp + 0x50]
call fcn.0049c145
add esp, 0x10
cmp eax, edi
je 0x40c5da
mov dword [esp + 0x48], 3
jmp 0x40c602
push edi
push dword [esp + 0x48]
push dword [esp + 0xd4]
call fcn.00424f30
mov dword [esp + 0x54], eax
add esp, 0xc
mov ecx, eax
mov eax, 4
test ecx, ecx
cmovne ecx, eax
mov dword [esp + 0x48], ecx
push dword [esp + 0x44]
call fcn.0049bf3e
add esp, 4
push esi
call fcn.0049bcd7
add esp, 4
cmp dword [esp + 0x48], 1
je 0x40e018
cmp dword [esp + 0x48], 2
je 0x40c663
cmp dword [esp + 0x48], 3
jne 0x40c646
push dword [esp + 0xd4]
push str.Read_error:__s._n
call fcn.004023b0
add esp, 8
jmp 0x40c670
cmp dword [esp + 0x48], 4
jne 0x40c670
push dword [esp + 0xd4]
push str.Unsupported_image:__s._nSpecify_JPEG_PNG_GIF_image_n
call fcn.004023b0
add esp, 8
jmp 0x40c670
push str.Insufficient_memory_for_reading_the_albumart._n
call fcn.004023b0
add esp, 4
cmp dword [esp + 0x48], 0
je 0x40b690
cmp dword [esp + 0xb8], 0
je 0x40dff3
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.ignore_tag_errors
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c6d4
inc esi
inc edi
cmp ebx, eax
je 0x40c6af
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c700
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.add_id3v2
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c73b
inc esi
inc edi
cmp ebx, eax
je 0x40c716
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c76b
push dword [esp + 0xcc]
call fcn.00424e10
add esp, 4
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.id3v1_only
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c7a6
inc esi
inc edi
cmp ebx, eax
je 0x40c781
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c7e1
push dword [esp + 0xcc]
call fcn.00424e40
add esp, 4
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.id3v2_only
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c81c
inc esi
inc edi
cmp ebx, eax
je 0x40c7f7
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c857
push dword [esp + 0xcc]
call fcn.00424e70
add esp, 4
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 2
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.space_id3v1
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c892
inc esi
inc edi
cmp ebx, eax
je 0x40c86d
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c8c2
push dword [esp + 0xcc]
call fcn.00424ea0
add esp, 4
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.pad_id3v2
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c8fd
inc esi
inc edi
cmp ebx, eax
je 0x40c8d8
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c92d
push dword [esp + 0xcc]
call fcn.00424ed0
add esp, 4
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.pad_id3v2_size
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40c968
inc esi
inc edi
cmp ebx, eax
je 0x40c943
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40c9ef
mov dword [esp + 0x40], 0
lea ecx, [esp + 0x40]
push 0xa
push ecx
push dword [esp + 0xdc]
call fcn.004a1d43
add esp, 0xc
mov edi, eax
cmp dword [esp + 0xd4], 0
je 0x40e031
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x40]
je 0x40e031
mov eax, 0x1f400
cmp edi, 0x1f400
cmovg edi, eax
mov ecx, edi
sar ecx, 0x1f
not ecx
and ecx, edi
push ecx
push dword [esp + 0xd0]
call fcn.00424f00
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.genre_list
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40ca2a
inc esi
inc edi
cmp ebx, eax
je 0x40ca05
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
je 0x40f033
mov eax, dword [esp + 0x4c]
mov edi, str.lowpass
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40ca7a
inc esi
inc edi
cmp ebx, eax
je 0x40ca55
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40cb05
mov dword [esp + 0x3c], 0
lea ecx, [esp + 0x3c]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
fstp qword [esp + 0x88]
movsd xmm2, qword [esp + 0x88]
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40e0e7
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x3c]
je 0x40e0e7
pxor xmm0, xmm0
comisd xmm0, xmm2
jbe 0x40e04f
push 0xffffffffffffffff
push dword [esp + 0xd0]
call fcn.00416110
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.lowpass_width
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40cb40
inc esi
inc edi
cmp ebx, eax
je 0x40cb1b
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40cc0e
mov dword [esp + 0x38], 0
lea ecx, [esp + 0x38]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
fstp qword [esp + 0x88]
movsd xmm2, qword [esp + 0x88]
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40e137
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x38]
je 0x40e137
movsd xmm0, qword [0x4b5248]
comisd xmm0, xmm2
ja 0x40e105
comisd xmm2, xmmword [0x4b5250]
ja 0x40e105
movsd xmm0, qword [0x4b5258]
comisd xmm0, xmm2
movsd xmm1, qword [0x4b5240]
ja 0x40cbde
movsd xmm1, qword [0x4b5288]
mulsd xmm2, xmm1
addsd xmm2, qword [0x4b5238]
cvttsd2si eax, xmm2
push eax
push dword [esp + 0xd0]
call fcn.00416140
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.highpass
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40cc49
inc esi
inc edi
cmp ebx, eax
je 0x40cc24
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40ccd4
mov dword [esp + 0x34], 0
lea ecx, [esp + 0x34]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
fstp qword [esp + 0x88]
movsd xmm2, qword [esp + 0x88]
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40e1ed
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x34]
je 0x40e1ed
pxor xmm0, xmm0
comisd xmm0, xmm2
jbe 0x40e155
push 0xffffffffffffffff
push dword [esp + 0xd0]
call fcn.00416170
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.highpass_width
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40cd0f
inc esi
inc edi
cmp ebx, eax
je 0x40ccea
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40cdb3
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x30]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
fstp qword [esp + 0x88]
movsd xmm1, qword [esp + 0x88]
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40e23d
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x30]
je 0x40e23d
movsd xmm0, qword [0x4b5248]
comisd xmm0, xmm1
ja 0x40e20b
comisd xmm1, xmmword [0x4b5250]
ja 0x40e20b
cvttsd2si eax, xmm1
push eax
push dword [esp + 0xd0]
call fcn.004161a0
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.comp
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40cdee
inc esi
inc edi
cmp ebx, eax
je 0x40cdc9
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40ce89
mov dword [esp + 0x2c], 0
lea ecx, [esp + 0x2c]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
fstp qword [esp + 0x88]
movsd xmm1, qword [esp + 0x88]
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40e28d
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x2c]
je 0x40e28d
movsd xmm0, qword [0x4b5288]
comisd xmm0, xmm1
ja 0x40e25b
cvtsd2ss xmm1, xmm1
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
movss dword [esp + 4], xmm1
call fcn.00415bc0
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.quiet
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40cec4
inc esi
inc edi
cmp ebx, eax
je 0x40ce9f
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40ceef
mov dword [0x52ef48], 0xa
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.silent
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40cf2a
inc esi
inc edi
cmp ebx, eax
je 0x40cf05
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40cf55
mov dword [0x52ef48], 9
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.brief
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40cf90
inc esi
inc edi
cmp ebx, eax
je 0x40cf6b
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40cfbb
mov dword [0x52ef48], 0xfffffffb
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.verbose
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40cff6
inc esi
inc edi
cmp ebx, eax
je 0x40cfd1
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d021
mov dword [0x52ef48], 0xfffffff6
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.version
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d05c
inc esi
inc edi
cmp ebx, eax
je 0x40d037
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
je 0x40efcc
mov eax, dword [esp + 0x4c]
mov edi, str.license
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d0ac
inc esi
inc edi
cmp ebx, eax
je 0x40d087
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
je 0x40efcc
mov eax, dword [esp + 0x4c]
mov edi, str.help
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d0fc
inc esi
inc edi
cmp ebx, eax
je 0x40d0d7
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
je 0x40ee7f
mov eax, dword [esp + 0x4c]
mov edi, str.usage
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d14c
inc esi
inc edi
cmp ebx, eax
je 0x40d127
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
je 0x40ee7f
mov eax, dword [esp + 0x4c]
mov edi, str.longhelp
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d19c
inc esi
inc edi
cmp ebx, eax
je 0x40d177
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
je 0x40ee34
mov eax, dword [esp + 0x4c]
mov edi, 0x4b9908
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d1ec
inc esi
inc edi
cmp ebx, eax
je 0x40d1c7
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
je 0x40edd9
mov eax, dword [esp + 0x4c]
mov edi, str.preset
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d23c
inc esi
inc edi
cmp ebx, eax
je 0x40d217
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
je 0x40d29d
mov eax, dword [esp + 0x4c]
mov edi, str.alt_preset
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d288
inc esi
inc edi
cmp ebx, eax
je 0x40d263
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d3d5
mov ecx, dword [esp + 0xe4]
xor eax, eax
mov esi, dword [esp + 0xe8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0xc0], ebx
lea eax, [ecx + esi*4]
mov dword [esp + 0xb4], 1
lea ecx, [esi + 1]
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x20]
mov esi, str.fast
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40d301
test dl, dl
je 0x40d2fd
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40d301
add edi, 2
add esi, 2
test dl, dl
jne 0x40d2e1
xor eax, eax
jmp 0x40d306
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40d34e
mov esi, 0x4b96f8
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40d336
test dl, dl
je 0x40d332
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40d336
add edi, 2
add esi, 2
test dl, dl
jne 0x40d316
xor eax, eax
jmp 0x40d33b
sbb eax, eax
or eax, 1
cmp ebx, 1
mov edx, eax
mov eax, 1
cmovle ebx, eax
test edx, edx
je 0x40d387
jmp 0x40d39a
mov esi, 0x4b96f8
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40d37a
test dl, dl
je 0x40d376
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40d37a
add edi, 2
add esi, 2
test dl, dl
jne 0x40d35a
xor eax, eax
jmp 0x40d37f
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40e2ab
mov edx, dword [esp + 0x24]
mov eax, 1
cmp edx, 1
cmovle edx, eax
mov dword [esp + 0x24], edx
inc ecx
inc dword [esp + 0xb4]
cmp ecx, dword [esp + 0xdc]
jge 0x40d3c5
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xb4]
mov esi, dword [eax + edx*4]
mov dword [esp + 0xd4], esi
jmp 0x40d2d5
mov dword [esp + 0xd4], 0x4b4310
jmp 0x40d2d5
mov eax, dword [esp + 0x4c]
mov edi, str.disptime
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d410
inc esi
inc edi
cmp ebx, eax
je 0x40d3eb
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d472
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x18]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40ecdf
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x18]
je 0x40ecdf
fstp dword [0x52ef54]
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.nogaptags
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d4ad
inc esi
inc edi
cmp ebx, eax
je 0x40d488
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d4d9
mov dword [esp + 0xb4], 0
mov dword [esp + 0xbc], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.nogapout
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d514
inc esi
inc edi
cmp ebx, eax
je 0x40d4ef
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d5ad
mov edx, 0x400
mov ecx, dword [esp + 0xd4]
xor eax, eax
test edx, edx
je 0x40d56e
mov edi, ecx
and edi, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edi]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40d56c
mov eax, 0x10
sub eax, ecx
cmp eax, edx
ja 0x40d56e
mov eax, edi
add edi, edx
add edi, ecx
call fcn.0048a7d0
cmp eax, edx
cmova eax, edx
cmp eax, 0x400
jge 0x40ecff
push 0x400
push dword [esp + 0xd8]
push dword [ebp + 0x18]
call fcn.0049d3a0
add esp, 0xc
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xb4], 1
mov byte [eax + 0x400], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.out_dir
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d5e8
inc esi
inc edi
cmp ebx, eax
je 0x40d5c3
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d684
mov edx, 0x400
mov ecx, dword [esp + 0xd4]
xor eax, eax
test edx, edx
je 0x40d642
mov edi, ecx
and edi, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edi]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40d640
mov eax, 0x10
sub eax, ecx
cmp eax, edx
ja 0x40d642
mov eax, edi
add edi, edx
add edi, ecx
call fcn.0048a7d0
cmp eax, edx
cmova eax, edx
cmp eax, 0x400
jge 0x40ed3f
push 0x400
push dword [esp + 0xd8]
lea eax, [esp + 0xf8]
push eax
call fcn.0049d3a0
add esp, 0xc
mov byte [esp + 0x4f0], 0
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.nogap
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d6bf
inc esi
inc edi
cmp ebx, eax
je 0x40d69a
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d6eb
mov dword [esp + 0xb4], 0
mov dword [esp + 0xe0], 1
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.swap_channel
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d726
inc esi
inc edi
cmp ebx, eax
je 0x40d701
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d751
mov dword [0x52ef38], 1
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov eax, dword [esp + 0x4c]
mov edi, str.ignorelength
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [esp + 0xc0], ebx
movsx edx, byte [esi]
push edx
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d78c
inc esi
inc edi
cmp ebx, eax
je 0x40d767
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d7b7
mov dword [0x52ef40], 1
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov dword [esp + 0x50], esi
mov edi, str.athaa_sensitivity
mov dword [esp + 0xc0], ebx
mov esi, dword [esp + 0x4c]
movsx eax, byte [esi]
push eax
call fcn.0049e2aa
movsx ecx, byte [edi]
push ecx
movzx ebx, al
call fcn.0049e2aa
movzx eax, al
add esp, 8
test ebx, ebx
je 0x40d7f0
inc esi
inc edi
cmp ebx, eax
je 0x40d7cb
mov esi, dword [esp + 0x50]
mov edx, ebx
mov ebx, dword [esp + 0xc0]
cmp eax, edx
jne 0x40d85f
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x10]
push ecx
push dword [esp + 0xd8]
call fcn.004a17e8
add esp, 8
cmp dword [esp + 0xd4], 0
je 0x40ed7f
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x10]
je 0x40ed7f
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
fstp dword [esp + 4]
call fcn.00416380
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov eax, esi
mov edx, str.noshort
call fcn.0040f0a0
test eax, eax
jne 0x40d887
push esi
push str.WARNING:_ignoring_developer_only_switch____s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0x14], 1
jmp 0x40d88f
mov dword [esp + 0x14], 0
mov eax, esi
mov edx, str.short
call fcn.0040f0a0
test eax, eax
jne 0x40d8b5
push esi
push str.WARNING:_ignoring_developer_only_switch____s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0x14], 1
mov eax, esi
mov edx, str.allshort
call fcn.0040f0a0
test eax, eax
jne 0x40d8db
push esi
push str.WARNING:_ignoring_developer_only_switch____s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0x14], 1
mov eax, esi
mov edx, str.notemp
call fcn.0040f0a0
test eax, eax
jne 0x40d901
push esi
push str.WARNING:_ignoring_developer_only_switch____s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0x14], 1
mov eax, esi
mov edx, str.interch
call fcn.0040f0a0
test eax, eax
jne 0x40d938
push dword [esp + 0xd4]
push esi
push str.WARNING:_ignoring_developer_only_switch____s__s_n
call fcn.004023b0
add esp, 0xc
mov ecx, 1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x14], ecx
jmp 0x40d943
mov dword [esp + 0xb4], 0
mov eax, esi
mov edx, str.temporal_masking
call fcn.0040f0a0
test eax, eax
jne 0x40d978
push dword [esp + 0xd4]
push esi
push str.WARNING:_ignoring_developer_only_switch____s__s_n
call fcn.004023b0
add esp, 0xc
mov ecx, 1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x14], ecx
mov eax, esi
mov edx, str.nspsytune
call fcn.0040f0a0
test eax, eax
jne 0x40d99e
push esi
push str.WARNING:_ignoring_developer_only_switch____s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0x14], 1
mov eax, esi
mov edx, str.nssafejoint
call fcn.0040f0a0
test eax, eax
jne 0x40d9c4
push esi
push str.WARNING:_ignoring_developer_only_switch____s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0x14], 1
mov eax, esi
mov edx, str.nsmsfix
call fcn.0040f0a0
test eax, eax
jne 0x40d9f9
push dword [esp + 0xd4]
push esi
push str.WARNING:_ignoring_developer_only_switch____s__s_n
call fcn.004023b0
add esp, 0xc
mov ecx, 1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x14], ecx
mov eax, esi
mov edx, str.ns_bass
call fcn.0040f0a0
test eax, eax
jne 0x40da2e
push dword [esp + 0xd4]
push esi
push str.WARNING:_ignoring_developer_only_switch____s__s_n
call fcn.004023b0
add esp, 0xc
mov ecx, 1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x14], ecx
mov eax, esi
mov edx, str.ns_alto
call fcn.0040f0a0
test eax, eax
jne 0x40da63
push dword [esp + 0xd4]
push esi
push str.WARNING:_ignoring_developer_only_switch____s__s_n
call fcn.004023b0
add esp, 0xc
mov ecx, 1
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x14], ecx
mov eax, esi
mov edx, str.ns_treble
call fcn.0040f0a0
test eax, eax
jne 0x40da98
push dword [esp + 0xcc]
call fcn.00424e10
add esp, 4
mov dword [esp + 0xb4], 0
mov dword [esp + 0xac], 2
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xe8]
lea edi, [eax + ecx + 1]
jmp 0x40a693
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov ebx, dword [esp + 0xd4]
push ebx
push str.unknown_buffer_constraint__s_n
call fcn.004023b0
add esp, 8
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
fstp st(0)
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
fstp st(0)
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
fstp st(0)
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push str.The_track_number_has_to_be_between_1_and_255_for_ID3v1._n
call fcn.004023b0
add esp, 4
jmp 0x40c27c
push str.The_track_number_has_to_be_between_1_and_255_for_ID3v1__ignored_for_ID3v1._n
call fcn.004023b0
add esp, 4
mov dword [esp + 0xb4], 1
jmp 0x40de0e
push str.Internal_error._n
call fcn.004023b0
add esp, 4
jmp 0x40c3c0
push dword [esp + 0xd4]
push str.Unknown_ID3v1_genre:__s.__Setting_ID3v1_genre_to_Other_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
push dword [esp + 0xd4]
push str.Invalid_field_value:__s._Ignored_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
push dword [esp + 0xd4]
push str.Could_not_find:__s._n
call fcn.004023b0
add esp, 8
jmp 0x40c670
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
movsd xmm0, qword [0x4b5248]
comisd xmm0, xmm2
ja 0x40e0b5
comisd xmm2, xmmword [0x4b5250]
ja 0x40e0b5
movsd xmm0, qword [0x4b5260]
comisd xmm0, xmm2
movsd xmm1, qword [0x4b5240]
ja 0x40e085
movsd xmm1, qword [0x4b5288]
mulsd xmm2, xmm1
addsd xmm2, qword [0x4b5238]
cvttsd2si eax, xmm2
push eax
push dword [esp + 0xd0]
call fcn.00416110
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
push str.Must_specify_lowpass_with___lowpass_freq__freq___0.001_kHz_n
call fcn.004023b0
add esp, 4
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push str.Must_specify_lowpass_width_with___lowpass_width_freq__freq___0.001_kHz_n
call fcn.004023b0
add esp, 4
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
movsd xmm0, qword [0x4b5248]
comisd xmm0, xmm2
ja 0x40e1bb
comisd xmm2, xmmword [0x4b5250]
ja 0x40e1bb
movsd xmm0, qword [0x4b5258]
comisd xmm0, xmm2
movsd xmm1, qword [0x4b5240]
ja 0x40e18b
movsd xmm1, qword [0x4b5288]
mulsd xmm2, xmm1
addsd xmm2, qword [0x4b5238]
cvttsd2si eax, xmm2
push eax
push dword [esp + 0xd0]
call fcn.00416170
add esp, 8
mov dword [esp + 0xb4], 1
jmp 0x40de0e
push str.Must_specify_highpass_with___highpass_freq__freq___0.001_kHz_n
call fcn.004023b0
add esp, 4
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push str.Must_specify_highpass_width_with___highpass_width_freq__freq___0.001_kHz_n
call fcn.004023b0
add esp, 4
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push str.Must_specify_compression_ratio___1.0_n
call fcn.004023b0
add esp, 4
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov esi, str.help
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0xd4]
mov ebx, dword [esp + 0xc0]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e2e2
test dl, dl
je 0x40e2de
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e2e2
add edi, 2
add esi, 2
test dl, dl
jne 0x40e2c2
xor eax, eax
jmp 0x40e2e7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40e4a8
cmp dword [esp + 0x20], 0
jg 0x40e4a8
cmp dword [esp + 0x24], 0
jg 0x40e4a8
push 1
call fcn.0049ba21
mov dword [esp + 0x20], eax
add esp, 4
call fcn.0042b450
mov edi, eax
call fcn.0042b3e0
mov esi, eax
call fcn.0042b410
mov dword [esp + 0x20], eax
mov edx, edi
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40e350
mov eax, edx
add edx, ecx
call fcn.0048a3b0
mov edx, esi
mov ebx, eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40e378
mov eax, edx
add edx, ecx
call fcn.0048a3b0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40e3a4
mov eax, edx
add edx, ecx
call fcn.0048a3b0
mov ecx, dword [esp + 0x14]
add ecx, ebx
lea ecx, [ecx + eax + 0x10]
cmp ecx, 0x50
jbe 0x40e401
lea ecx, [eax + 2]
cmp ecx, 0x50
ja 0x40e401
neg eax
add eax, 0x4e
test ebx, ebx
jbe 0x40e3e3
push dword [esp + 0x20]
push 0x4b4310
push eax
push esi
push edi
push str.LAME__s_version__s_n_s__s__n_n
push dword [esp + 0x34]
call fcn.0040f2f0
add esp, 0x1c
jmp 0x40e434
push dword [esp + 0x20]
push 0x4b4310
push eax
push esi
push str.LAME_version__s_n_s__s__n_n
push dword [esp + 0x30]
call fcn.0040f2f0
add esp, 0x18
jmp 0x40e434
test ebx, ebx
jbe 0x40e41e
push dword [esp + 0x20]
push esi
push edi
push str.LAME__s_version__s___s__n_n
push dword [esp + 0x2c]
call fcn.0040f2f0
add esp, 0x14
jmp 0x40e434
push dword [esp + 0x20]
push esi
push str.LAME_version__s___s__n_n
push dword [esp + 0x28]
call fcn.0040f2f0
add esp, 0x10
push 1
call fcn.0049ba21
mov ebx, eax
push str._nThe___preset_switches_are_aliases_over_LAME_settings._n_n_n
push ebx
call fcn.0040f2f0
push str.To_activate_these_presets:_n_n___For_VBR_modes__generally_highest_quality_:_n_n
push ebx
call fcn.0040f2f0
push str._______preset_medium______This_preset_should_provide_near_transparency_to_most_n__________________________people_on_most_music._n_n_______preset_standard____This_preset_should_generally_be_transparent_to_most_n__________________________people_on_most_music_and_is_already_quite_high_n__________________________in_quality._n_n
push ebx
call fcn.0040f2f0
push str._______preset_extreme_____If_you_have_extremely_good_hearing_and_similar_n__________________________equipment__this_preset_will_generally_provide_n__________________________slightly_higher_quality_than_the__standard__mode._n_n
push ebx
call fcn.0040f2f0
push str.___For_CBR_320kbps__highest_quality_possible_from_the___preset_switches_:_n_n_______preset_insane______This_preset_will_usually_be_overkill_for_most_people_n__________________________and_most_situations__but_if_you_must_have_the_n__________________________absolute_highest_quality_with_no_regard_to_filesize__n__________________________this_is_the_way_to_go._n_n
push ebx
call fcn.0040f2f0
push str.___For_ABR_modes__high_quality_per_given_bitrate_but_not_as_high_as_VBR_:_n_n_______preset__kbps_______Using_this_preset_will_usually_give_you_good_quality_n__________________________at_a_specified_bitrate._Depending_on_the_bitrate_n__________________________entered__this_preset_will_determine_the_optimal_n__________________________settings_for_that_particular_situation._For_example:_n_____________________________preset_185__activates_this_preset_and_uses_185_n__________________________as_an_average_kbps._n_n
push ebx
call fcn.0040f2f0
push str.____cbr_____If_you_use_the_ABR_mode__read_above__with_a_significant_n____________bitrate_such_as_80__96__112__128__160__192__224__256__320__n____________you_can_use_the__cbr__option_to_force_CBR_mode_encoding_n____________instead_of_the_standard_abr_mode._ABR_does_provide_higher_n____________quality_but_CBR_may_be_useful_in_situations_such_as_when_n____________streaming_an_mp3_over_the_internet_may_be_important._n_n
push ebx
call fcn.0040f2f0
push str.____For_example:_n_n______preset_standard__input_file___output_file__n_or___preset_cbr_192__input_file___output_file__n_or___preset_172__input_file___output_file__n_or___preset_extreme__input_file___output_file__n_n_n
push ebx
call fcn.0040f2f0
push str.A_few_aliases_are_also_available_for_ABR_mode:_nphone___16kbps_mono________phon_lw_mw_eu_sw___24kbps_mono_nmw_us___40kbps_mono________voice___56kbps_mono_nfm_radio_tape___112kbps____hifi___160kbps_ncd___192kbps_______________studio___256kbps_n
push ebx
call fcn.0040f2f0
add esp, 0x4c
jmp 0x40eadd
mov esi, str.phone
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e4d4
test dl, dl
je 0x40e4d0
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e4d4
add edi, 2
add esi, 2
test dl, dl
jne 0x40e4b4
xor eax, eax
jmp 0x40e4d9
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 0x4b8d28
mov edi, dword [esp + 0xd4]
mov eax, 1
cmove edi, ecx
mov ecx, 0
mov esi, str.phon
cmove ecx, eax
mov dword [esp + 0xd4], edi
mov dword [esp + 0x1c], ecx
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e527
test dl, dl
je 0x40e523
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e527
add edi, 2
add esi, 2
test dl, dl
jne 0x40e507
xor eax, eax
jmp 0x40e52c
sbb eax, eax
or eax, 1
test eax, eax
je 0x40e5d3
mov esi, 0x4b8d44
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e560
test dl, dl
je 0x40e55c
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e560
add edi, 2
add esi, 2
test dl, dl
jne 0x40e540
xor eax, eax
jmp 0x40e565
sbb eax, eax
or eax, 1
test eax, eax
je 0x40e5d3
mov esi, str.mw_eu
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e595
test dl, dl
je 0x40e591
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e595
add edi, 2
add esi, 2
test dl, dl
jne 0x40e575
xor eax, eax
jmp 0x40e59a
sbb eax, eax
or eax, 1
test eax, eax
je 0x40e5d3
mov esi, 0x4b8d38
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e5ca
test dl, dl
je 0x40e5c6
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e5ca
add edi, 2
add esi, 2
test dl, dl
jne 0x40e5aa
xor eax, eax
jmp 0x40e5cf
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40e5e6
mov dword [esp + 0xd4], 0x4b8d34
mov dword [esp + 0x1c], 1
mov esi, str.mw_us
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e612
test dl, dl
je 0x40e60e
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e612
add edi, 2
add esi, 2
test dl, dl
jne 0x40e5f2
xor eax, eax
jmp 0x40e617
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 0x4b8d50
mov edi, dword [esp + 0xd4]
mov esi, str.voice
cmove edi, ecx
mov ecx, 1
mov eax, dword [esp + 0x1c]
cmove eax, ecx
mov dword [esp + 0xd4], edi
mov dword [esp + 0x1c], eax
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e664
test dl, dl
je 0x40e660
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e664
add edi, 2
add esi, 2
test dl, dl
jne 0x40e644
xor eax, eax
jmp 0x40e669
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 0x4b8d5c
mov edi, dword [esp + 0xd4]
mov esi, 0x4b8d6c
cmove edi, ecx
mov ecx, 1
mov eax, dword [esp + 0x1c]
cmove eax, ecx
mov dword [esp + 0xd4], edi
mov dword [esp + 0x1c], eax
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e6b6
test dl, dl
je 0x40e6b2
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e6b6
add edi, 2
add esi, 2
test dl, dl
jne 0x40e696
xor eax, eax
jmp 0x40e6bb
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 0x4b8d68
mov edi, dword [esp + 0xd4]
mov esi, str.radio
cmove edi, ecx
mov dword [esp + 0xd4], edi
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e6f8
test dl, dl
je 0x40e6f4
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e6f8
add edi, 2
add esi, 2
test dl, dl
jne 0x40e6d8
xor eax, eax
jmp 0x40e6fd
sbb eax, eax
or eax, 1
test eax, eax
je 0x40e736
mov esi, str.tape
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e72d
test dl, dl
je 0x40e729
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e72d
add edi, 2
add esi, 2
test dl, dl
jne 0x40e70d
xor eax, eax
jmp 0x40e732
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40e741
mov dword [esp + 0xd4], 0x4b8d68
mov esi, str.hifi
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e76d
test dl, dl
je 0x40e769
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e76d
add edi, 2
add esi, 2
test dl, dl
jne 0x40e74d
xor eax, eax
jmp 0x40e772
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 0x4b8d80
mov edi, dword [esp + 0xd4]
mov esi, 0x4b8d90
cmove edi, ecx
mov dword [esp + 0xd4], edi
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e7af
test dl, dl
je 0x40e7ab
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e7af
add edi, 2
add esi, 2
test dl, dl
jne 0x40e78f
xor eax, eax
jmp 0x40e7b4
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 0x4b8d8c
mov edi, dword [esp + 0xd4]
mov esi, str.studio
cmove edi, ecx
mov dword [esp + 0xd4], edi
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e7f1
test dl, dl
je 0x40e7ed
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e7f1
add edi, 2
add esi, 2
test dl, dl
jne 0x40e7d1
xor eax, eax
jmp 0x40e7f6
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 0x4b8d94
mov edi, dword [esp + 0xd4]
mov esi, str.medium
cmove edi, ecx
mov dword [esp + 0xd4], edi
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e833
test dl, dl
je 0x40e82f
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e833
add edi, 2
add esi, 2
test dl, dl
jne 0x40e813
xor eax, eax
jmp 0x40e838
sbb eax, eax
or eax, 1
test eax, eax
je 0x40eb57
mov esi, str.standard
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e86c
test dl, dl
je 0x40e868
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e86c
add edi, 2
add esi, 2
test dl, dl
jne 0x40e84c
xor eax, eax
jmp 0x40e871
sbb eax, eax
or eax, 1
test eax, eax
je 0x40eb33
mov esi, str.extreme
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e8a5
test dl, dl
je 0x40e8a1
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e8a5
add edi, 2
add esi, 2
test dl, dl
jne 0x40e885
xor eax, eax
jmp 0x40e8aa
sbb eax, eax
or eax, 1
test eax, eax
je 0x40eb0f
mov esi, str.insane
mov edi, dword [esp + 0xd4]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40e8de
test dl, dl
je 0x40e8da
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40e8de
add edi, 2
add esi, 2
test dl, dl
jne 0x40e8be
xor eax, eax
jmp 0x40e8e3
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40e907
cmp dword [esp + 0x20], 0
jg 0x40e907
push 0x3eb
push dword [esp + 0xd0]
call fcn.00416910
add esp, 8
jmp 0x40de0e
push dword [esp + 0xd4]
call fcn.004a1db6
add esp, 4
test eax, eax
jle 0x40e98a
cmp dword [esp + 0x20], 0
jg 0x40e98a
push dword [esp + 0xd4]
call fcn.004a1db6
add esp, 4
cmp eax, 8
jl 0x40eba7
push dword [esp + 0xd4]
call fcn.004a1db6
add esp, 4
cmp eax, 0x140
jg 0x40eba7
push dword [esp + 0xd4]
call fcn.004a1db6
push eax
push dword [esp + 0xd4]
call fcn.00416910
add esp, 0xc
cmp dword [esp + 0x24], 1
je 0x40eb91
mov eax, dword [0x54112c]
mov dword [esp + 0x1c], eax
call fcn.0042b450
mov dword [esp + 0x14], eax
call fcn.0042b3e0
mov edi, eax
call fcn.0042b410
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x14]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40e9d4
mov eax, edx
add edx, ecx
call fcn.0048a3b0
mov edx, edi
mov esi, eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40e9fc
mov eax, edx
add edx, ecx
call fcn.0048a3b0
mov edx, dword [esp + 0x20]
mov ebx, eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40ea26
mov eax, edx
add edx, ecx
call fcn.0048a3b0
mov ecx, eax
add ebx, esi
lea eax, [ebx + ecx + 0x10]
cmp eax, 0x50
jbe 0x40ea84
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xffffffff
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
push 0
push dword [esp + 0xd0]
call fcn.00415ea0
push 4
push dword [esp + 0xd8]
call fcn.00415e40
add esp, 0x10
jmp 0x40de0e
push 2
push dword [esp + 0xd0]
call fcn.00415ea0
push 4
push dword [esp + 0xd8]
call fcn.00415e40
add esp, 0x10
jmp 0x40de0e
push 4
push dword [esp + 0xd0]
call fcn.00415ea0
push 4
push dword [esp + 0xd8]
call fcn.00415e40
add esp, 0x10
jmp 0x40de0e
mov edi, dword [0x54112c]
call fcn.0042b450
mov dword [esp + 0x14], eax
call fcn.0042b3e0
mov esi, eax
call fcn.0042b410
mov ebx, eax
mov edx, dword [esp + 0x14]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40ebec
mov eax, edx
add edx, ecx
call fcn.0048a3b0
mov edx, esi
mov dword [esp + 0x1c], eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40ec16
fstp st(0)
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
push 0x400
push eax
push esi
push dword [esp + 0xe4]
push str._s:__s_argument_length___d__exceeds_limit___d__n
call fcn.004023b0
add esp, 0x14
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
push 0x400
push eax
push esi
push dword [esp + 0xe4]
push str._s:__s_argument_length___d__exceeds_limit___d__n
call fcn.004023b0
add esp, 0x14
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40a73c
fstp st(0)
push esi
push str.WARNING:_argument_missing_for__s_n
call fcn.004023b0
add esp, 8
mov dword [esp + 0xb4], 0
jmp 0x40de0e
mov edi, dword [esp + 0xcc]
push 1
call fcn.0049ba21
mov edx, eax
add esp, 4
mov dword [esp + 0xc], 1
mov eax, edi
mov ecx, dword [esp + 0xd8]
call fcn.0040f4dc
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
mov eax, 0xfffffffe
add esp, 0x534
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xcc]
push 1
call fcn.0049ba21
mov edx, eax
add esp, 4
mov dword [esp + 0xc], 0
mov eax, edi
mov ecx, dword [esp + 0xd8]
call fcn.0040f4dc
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x4f4], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x40ac2d
jmp 0x40ee22
mov ebx, dword [esp + 0xd4]
mov edi, dword [esp + 0xcc]
mov eax, ebx
mov edx, 0x4b96ec
mov ecx, 3
call fcn.0040f470
test eax, eax
jne 0x40eee7
push 1
call fcn.0049ba21
mov ebx, eax
push str.__ID3_tag_options:_n______tt__title_____audio_song_title__max_30_chars_for_version_1_tag__n______ta__artist____audio_song_artist__max_30_chars_for_version_1_tag__n______tl__album_____audio_song_album__max_30_chars_for_version_1_tag__n______ty__year______audio_song_year_of_issue__1_to_9999__n______tc__comment___user_defined_text__max_30_chars_for_v1_tag__28_for_v1.1__n
push ebx
call fcn.0040f2f0
push str.______tn__track__total_____audio_song_track_number_and__optionally__the_total_n___________________________number_of_tracks_on_the_original_recording.__track_n___________________________and_total_each_1_to_255._just_the_track_number_n___________________________creates_v1.1_tag__providing_a_total_forces_v2.0_._n
push ebx
call fcn.0040f2f0
push str.______tg__genre_____audio_song_genre__name_or_number_in_list__n______ti__file______audio_song_albumArt__jpeg_png_gif_file__v2.3_tag__n______tv__idvalue__user_defined_frame_specified_by_id_and_value__v2.3_tag__n____________________syntax:___tv__TXXXdescriptioncontent__n
push ebx
call fcn.0040f2f0
push str.______add_id3v2_____force_addition_of_version_2_tag_n______id3v1_only____add_only_a_version_1_tag_n______id3v2_only____add_only_a_version_2_tag_n______id3v2_utf16___add_following_options_in_unicode_text_encoding_n______id3v2_latin1__add_following_options_in_latin_1_text_encoding_n______space_id3v1___pad_version_1_tag_with_spaces_instead_of_nulls_n______pad_id3v2_____same_as___pad_id3v2_size_128_n______pad_id3v2_size__value__adds_version_2_tag__pad_with_extra__value__bytes_n______genre_list____print_alphabetically_sorted_ID3_genre_list_and_exit_n______ignore_tag_errors__ignore_errors_in_values_passed_for_tags_n_n
push ebx
call fcn.0040f2f0
push str.____Note:_A_version_2_tag_will_NOT_be_added_unless_one_of_the_input_fields_n____wont_fit_in_a_version_1_tag__e.g._the_title_string_is_longer_than_30_n____characters___or_the___add_id3v2_or___id3v2_only_options_are_used__n____or_output_is_redirected_to_stdout._n
push ebx
call fcn.0040f2f0
jmp 0x40efa4
invalid