Function at 0x46c93b
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov eax, 0x18d4c
call fcn.00479860
sub esp, eax
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
lea ecx, [ebp - 0x183ac]
call fcn.004577f0
mov dword [ebp - 0x18cb0], 0
mov dword [ebp - 0x18cac], 0
mov ecx, 0x2d
lea edi, [ebp - 0x18c60]
rep movsd dword es:[edi], dword [esi]
mov dword [esp], 2
mov esi, dword [dbg.__acrt_iob_func]
mov dword [ebp - 0x18cc4], esi
call esi
mov dword [esp + 8], ebx
mov dword [esp + 4], str._n__PCM_input_file:__s
mov dword [esp], eax
call sym.fn_fprintf__iobuf__wchar_t_const__..._
mov dword [esp], 2
call esi
mov edx, dword [ebp + 0xc]
mov dword [esp + 8], edx
mov dword [esp + 4], str._nMPEG_output_file:__s
mov dword [esp], eax
call sym.fn_fprintf__iobuf__wchar_t_const__..._
mov eax, dword [0x4bf3a8]
mov dword [ebp - 0x18cdc], eax
mov dword [ebp - 0x18cd0], 0
test eax, eax
je 0x46ca04
and eax, 2
mov dword [ebp - 0x18cd0], eax
je 0x46d3fc
mov dword [ebp - 0x18cd0], 4
mov dword [ebp - 0x18cdc], 0x4f
mov dword [0x4bf39c], 0
mov dword [0x4bf398], 0
mov dword [0x4bf390], 0
mov dword [0x4bf38c], 0
mov dword [0x4bf388], 0
mov dword [0x4bf384], 0
mov dword [0x4bf394], 0
mov dword [esp], 0x20000
call sym.operator_new___unsigned_int_
mov dword [0x4bf39c], eax
mov dword [esp], 0x120000
call sym.operator_new___unsigned_int_
mov dword [0x4bf390], eax
mov dword [esp + 4], 0x4a9924
mov dword [esp], ebx
call sym._wcscmp
test eax, eax
jne 0x46d357
mov dword [esp], 0
mov edi, dword [ebp - 0x18cc4]
call edi
mov dword [0x4bf384], eax
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__fileno]
mov dword [esp + 4], 0x8000
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__setmode]
mov dword [0x4bf3a4], 1
mov esi, dword [0x4bf384]
mov edi, dword [0x4bf390]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x800
mov dword [esp + 4], 1
lea ecx, [ebp - 0x18bac]
mov dword [esp], ecx
call sym._fread
test eax, eax
jle 0x46d218
lea edx, [ebp - 0x18cb0]
mov dword [esp + 0x10], edx
lea ecx, [ebp - 0x18ca8]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
lea eax, [ebp - 0x18bac]
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._pcmhead_file
mov esi, eax
test eax, eax
je 0x46d218
mov dword [0x4bf38c], 0
lea edx, [eax - 1]
xor eax, eax
cmp edx, 0x7fe
jbe 0x46d4be
mov edi, dword [0x4bf3a4]
test edi, edi
je 0x46d39b
mov dword [ebp - 0x18cb0], 0xffffffff
mov dword [ebp - 0x18cac], 0xffffffff
mov edx, dword [ebp - 0x18c9c]
mov dword [ebp - 0x18cd8], edx
mov edi, dword [ebp - 0x18ca0]
mov esi, dword [ebp - 0x18ca4]
mov ebx, dword [ebp - 0x18ca8]
mov dword [esp], 2
mov ecx, dword [ebp - 0x18cc4]
call ecx
mov edx, dword [ebp - 0x18cd8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], str._n_pcm_file:__channels___d__bits___d___rate___d__type___d
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov eax, dword [ebp - 0x18ca8]
lea edi, [eax - 1]
cmp edi, 1
jbe 0x46d2a2
cmp dword [ebp - 0x18c9c], 3
je 0x46d2c9
mov ebx, dword [ebp - 0x18ca4]
mov dword [ebp - 0x18cd8], 1
lea ecx, [ebx - 8]
cmp ecx, 0x18
ja 0x46d2c9
mov edx, 0x1010101
shr edx, cl
and edx, 1
je 0x46d2c9
mov esi, dword [ebp - 0x18cd8]
test esi, esi
jne 0x46d2c9
mov edi, dword [ebp - 0x18c98]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._cvt_to_pcm_init
mov dword [ebp - 0x18cfc], eax
mov eax, dword [ebp - 0x18c60]
test eax, eax
js 0x46d4ee
mov ebx, dword [ebp - 0x18ca8]
cmp ebx, 1
je 0x46d505
cmp ebx, 2
jne 0x46cc5c
cmp eax, 3
jne 0x46cc5c
mov dword [ebp - 0x18c60], 1
mov ecx, dword [ebp - 0x18ca0]
mov dword [ebp - 0x18c58], ecx
mov edx, dword [0x4bf3ac]
mov dword [esp + 0x10], edx
mov esi, dword [0x4bf3b0]
mov dword [esp + 0xc], esi
xor eax, eax
cmp dword [ebp - 0x18c9c], 3
sete al
mov dword [esp + 8], eax
mov edi, dword [ebp - 0x18ca4]
mov dword [esp + 4], edi
lea ebx, [ebp - 0x18c60]
mov dword [esp], ebx
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.MP3_audio_encode_init_E_CONTROL__int__int__int__int_
sub esp, 0x14
mov dword [ebp - 0x18cc8], eax
test eax, eax
je 0x46d9b0
mov dword [esp + 4], 0x4a9924
mov ecx, dword [ebp + 0xc]
mov dword [esp], ecx
call sym._wcscmp
test eax, eax
je 0x46d514
mov dword [esp + 4], 0x4a938a
mov edx, dword [ebp + 0xc]
mov dword [esp], edx
call dword [sym.imp.msvcrt.dll__wfopen]
mov dword [0x4bf394], eax
test eax, eax
je 0x46df23
mov ecx, dword [0x4bf38c]
mov eax, dword [ebp - 0x18cc8]
cmp ecx, eax
jge 0x46cd80
mov eax, 0x120000
mov edi, eax
sub edi, ecx
xor edx, edx
div dword [ebp - 0x18cfc]
sub edi, edx
mov esi, dword [ebp - 0x18cb0]
lea ebx, [edi + ecx]
mov eax, ebx
cdq
mov dword [ebp - 0x18ce8], ebx
mov dword [ebp - 0x18ce4], edx
cmp esi, ebx
mov ebx, dword [ebp - 0x18cac]
sbb ebx, dword [ebp - 0x18ce4]
jae 0x46cd46
sub esi, ecx
mov edi, esi
mov esi, dword [0x4bf384]
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], 1
add ecx, dword [0x4bf390]
mov dword [esp], ecx
call sym._fread
mov ecx, eax
test eax, eax
js 0x46df47
add ecx, dword [0x4bf38c]
mov dword [0x4bf38c], ecx
mov dword [esp + 4], ecx
mov eax, dword [0x4bf390]
mov dword [esp], eax
call sym._cvt_to_pcm
mov dword [0x4bf38c], eax
mov dword [ebp - 0x18cf8], eax
sar eax, 0x1f
mov dword [ebp - 0x18cf4], eax
lea edx, [ebp - 0x18bac]
mov dword [esp], edx
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.L3_audio_encode_info_string_char_
sub esp, 4
mov dword [esp], 2
mov ebx, dword [ebp - 0x18cc4]
call ebx
lea edi, [ebp - 0x18bac]
mov dword [esp + 8], edi
mov dword [esp + 4], str._n__s
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
lea esi, [ebp - 0x18c60]
mov dword [esp], esi
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.L3_audio_encode_info_ec_E_CONTROL_
sub esp, 4
mov ecx, dword [0x4bf3a0]
test ecx, ecx
jne 0x46deec
mov edx, dword [0x4bf3a8]
mov dword [ebp - 0x18d0c], edx
test edx, edx
je 0x46daf2
lea ebx, [ebp - 0x18c94]
mov dword [esp], ebx
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.L3_audio_encode_info_head_MPEG_HEAD_
sub esp, 4
mov dword [ebp - 0x18d14], 0xffffffff
mov edi, dword [ebp - 0x18c34]
test edi, edi
je 0x46ce55
mov esi, dword [ebp - 0x18c30]
mov dword [ebp - 0x18d14], esi
mov ecx, dword [ebp - 0x18c5c]
imul ecx, dword [ebp - 0x18ca8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov eax, dword [0x4bf398]
add eax, dword [0x4bf39c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], 0
mov edx, dword [ebp - 0x18d14]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov ebx, dword [ebp - 0x18cdc]
mov dword [esp + 0x10], ebx
mov edi, dword [ebp - 0x18c3c]
mov dword [esp + 0xc], edi
mov esi, dword [ebp - 0x18c40]
mov dword [esp + 8], esi
mov ecx, dword [ebp - 0x18c74]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x18c58]
mov dword [esp], eax
call sym._XingHeader
mov dword [ebp - 0x18d0c], eax
mov dword [ebp - 0x18d10], eax
add eax, dword [0x4bf398]
mov dword [0x4bf398], eax
mov edx, dword [0x4bf394]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov ebx, dword [0x4bf39c]
mov dword [esp], ebx
call sym._fwrite
cmp dword [0x4bf398], eax
jne 0x46d98c
mov dword [0x4bf398], 0
mov dword [esp], 2
mov edi, dword [ebp - 0x18cc4]
call edi
mov dword [esp + 4], 0x4a93d8
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov dword [esp], 2
call edi
mov dword [esp + 4], str._n_______________________________________________________________________________
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov dword [esp], 2
call edi
mov dword [esp + 4], str._n______Frames_______Bytes_In_____Bytes_Out__Progress__Current_Average_Bitrate
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov dword [esp], 2
call edi
mov dword [esp + 4], str._n_______None__________None_________None_______None____None
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov esi, dword [ebp - 0x18cc8]
add esi, esi
add esi, esi
mov dword [ebp - 0x18d00], esi
mov ecx, dword [ebp - 0x18d10]
mov eax, dword [ebp - 0x18cd0]
test eax, eax
mov dword [ebp - 0x18cdc], ecx
jne 0x46db0b
mov byte [ebp - 0x18d08], 0
mov word [ebp - 0x18cde], 0
mov dword [ebp - 0x18cd0], 0
mov dword [ebp - 0x18ccc], 0
mov dword [ebp - 0x18cd8], 1
jmp 0x46cff9
add dword [ebp - 0x18cd8], 1
mov ebx, dword [ebp - 0x18cd8]
sub ebx, 1
mov dword [ebp - 0x18cf0], ebx
mov esi, dword [0x4bf38c]
mov ebx, dword [0x4bf390]
mov ecx, dword [0x4bf388]
cmp dword [ebp - 0x18cc8], esi
jle 0x46d142
mov dword [esp + 8], esi
add ecx, ebx
mov dword [esp + 4], ecx
mov dword [esp], ebx
call sym._memmove
mov ecx, dword [0x4bf38c]
mov eax, 0x120000
mov edi, eax
sub edi, ecx
xor edx, edx
div dword [ebp - 0x18cfc]
mov eax, edi
sub eax, edx
mov edx, dword [ebp - 0x18cb0]
mov esi, eax
mov edi, eax
sar edi, 0x1f
add esi, dword [ebp - 0x18cf8]
adc edi, dword [ebp - 0x18cf4]
mov dword [ebp - 0x18ce8], esi
mov dword [ebp - 0x18ce4], edi
cmp edx, esi
mov edi, dword [ebp - 0x18cac]
sbb edi, dword [ebp - 0x18ce4]
jae 0x46d092
mov eax, edx
mov edx, dword [ebp - 0x18cf8]
sub eax, edx
mov esi, dword [0x4bf384]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], 1
add ebx, ecx
mov dword [esp], ebx
call sym._fread
mov ebx, eax
mov edi, eax
test eax, eax
jle 0x46d632
add dword [ebp - 0x18cf8], eax
adc dword [ebp - 0x18cf4], 0
mov ecx, dword [0x4bf384]
mov dword [esp], ecx
call sym._feof
mov esi, dword [0x4bf390]
test eax, eax
jne 0x46d564
mov eax, dword [ebp - 0x18cf8]
mov edx, dword [ebp - 0x18cf4]
xor eax, dword [ebp - 0x18cb0]
xor edx, dword [ebp - 0x18cac]
or eax, edx
je 0x46d564
mov dword [esp + 4], edi
add esi, dword [0x4bf38c]
mov dword [esp], esi
call sym._cvt_to_pcm
add eax, dword [0x4bf38c]
mov dword [0x4bf38c], eax
mov dword [0x4bf388], 0
cmp dword [ebp - 0x18cc8], eax
jg 0x46d638
xor ecx, ecx
mov ebx, dword [0x4bf390]
mov esi, dword [0x4bf398]
add esi, dword [0x4bf39c]
mov dword [esp + 4], esi
add ebx, ecx
mov dword [esp], ebx
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.MP3_audio_encode_unsigned_char__unsigned_char_
sub esp, 8
mov edi, eax
mov ebx, edx
sub dword [0x4bf38c], eax
add dword [0x4bf388], eax
mov eax, dword [0x4bf398]
add eax, edx
mov dword [0x4bf398], eax
cmp eax, 0x1f4c0
ja 0x46d5cc
add dword [ebp - 0x18cdc], ebx
mov esi, dword [ebp - 0x18cb0]
mov ebx, dword [ebp - 0x18cac]
mov eax, edi
cdq
add eax, dword [ebp - 0x18cd0]
adc edx, dword [ebp - 0x18ccc]
cmp esi, eax
mov edi, ebx
sbb edi, edx
mov ecx, esi
cmovae ecx, eax
mov dword [ebp - 0x18cd0], ecx
cmovb edx, ebx
mov dword [ebp - 0x18ccc], edx
mov eax, dword [ebp - 0x18cd8]
and eax, 0x7f
cmp eax, dword [0x4a3264]
jne 0x46cff2
mov edi, dword [0x4bf3a4]
test edi, edi
je 0x46d8e3
mov esi, 0xffffffff
mov dword [esp + 4], esi
mov ebx, dword [ebp - 0x18cdc]
mov dword [esp], ebx
mov edx, dword [ebp - 0x18cd0]
mov ecx, dword [ebp - 0x18ccc]
lea eax, [ebp - 0x183ac]
call sym.print_progress_CMp3Enc__unsigned_long_long__unsigned_int__int_
jmp 0x46cff2
mov dword [esp], 2
mov esi, dword [ebp - 0x18cc4]
call esi
mov dword [esp + 4], str._n_UNRECOGNIZED_PCM_FILE_TYPE
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov edx, dword [0x4bf39c]
test edx, edx
je 0x46d249
mov dword [esp], edx
call sym.operator_delete___void_
mov edi, dword [0x4bf390]
test edi, edi
je 0x46d25b
mov dword [esp], edi
call sym.operator_delete___void_
mov ecx, dword [0x4bf384]
test ecx, ecx
je 0x46d26d
mov dword [esp], ecx
call sym._fclose
mov ebx, dword [0x4bf394]
test ebx, ebx
je 0x46d27f
mov dword [esp], ebx
call sym._fclose
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.L3_audio_encode_get_frames__
mov esi, eax
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.CMp3Enc__
lea eax, [esi + 1]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [ebp - 0x18c9c]
mov ebx, dword [ebp - 0x18ca0]
lea ecx, [ebx - 0x1f40]
cmp ecx, 0x9c40
jbe 0x46d40b
cmp esi, 3
jne 0x46cbd5
mov dword [esp], 2
mov ebx, dword [ebp - 0x18cc4]
call ebx
mov dword [esp + 4], str._n_UNSUPPORTED_PCM_FILE_TYPE_n
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov edx, dword [ebp - 0x18ca8]
sub edx, 1
cmp edx, 1
ja 0x46d431
mov ecx, dword [ebp - 0x18ca0]
sub ecx, 0x1f40
cmp ecx, 0x9c40
ja 0x46d49a
mov esi, dword [ebp - 0x18c9c]
cmp esi, 1
je 0x46d473
cmp esi, 3
jne 0x46d333
cmp dword [ebp - 0x18ca4], 0x20
je 0x46d237
mov dword [esp], 2
mov eax, dword [ebp - 0x18cc4]
call eax
mov dword [esp + 4], str._Only_8__16__24_and_32_bit_linear_PCM_or_32_bit_floating_point_supported.
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov dword [esp + 4], 0x4a919c
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll__wfopen]
mov esi, eax
mov dword [0x4bf384], eax
test eax, eax
jne 0x46cac2
mov dword [esp], 2
mov ebx, dword [ebp - 0x18cc4]
call ebx
mov dword [esp + 4], str._n_CANNOT_OPEN_INPUT_FILE
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov edx, dword [ebp - 0x18cb0]
mov esi, dword [ebp - 0x18cac]
mov ecx, edx
or ecx, esi
je 0x46d44f
mov ecx, edx
not ecx
or ecx, esi
jne 0x46d3e2
mov dword [esp + 4], 0x4a9924
mov dword [esp], ebx
call sym._wcscmp
test eax, eax
jne 0x46d9d4
mov eax, dword [0x4bf38c]
mov edx, dword [ebp - 0x18cb0]
mov esi, dword [ebp - 0x18cac]
mov ecx, eax
sar ecx, 0x1f
cmp edx, eax
sbb esi, ecx
jae 0x46cb63
mov dword [0x4bf38c], edx
jmp 0x46cb63
mov dword [ebp - 0x18cdc], 0xb
jmp 0x46ca04
mov ebx, dword [ebp - 0x18ca4]
cmp esi, 3
je 0x46d54c
and esi, 0xfffffffd
cmp esi, 1
setne dl
movzx edi, dl
mov dword [ebp - 0x18cd8], edi
jmp 0x46cbe5
mov dword [esp], 2
call ebx
mov dword [esp + 4], str._Only_mono_and_stereo_inputs_supported.
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d2fa
mov dword [esp], 2
mov eax, dword [ebp - 0x18cc4]
call eax
mov dword [esp + 4], str._n_INPUT_FILE_CONTAINS_NO_AUDIO
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov edi, dword [ebp - 0x18ca4]
lea ecx, [edi - 8]
cmp ecx, 0x18
ja 0x46d333
mov ebx, 0x1010101
shr ebx, cl
test bl, 1
jne 0x46d237
jmp 0x46d333
mov dword [esp], 2
mov eax, dword [ebp - 0x18cc4]
call eax
mov dword [esp + 4], str._Supported_sampling_rates_are_8000_Hz___48000_Hz.
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d312
mov eax, 0x800
sub eax, esi
mov edx, eax
lea esi, [ebp + esi - 0x18bac]
cmp eax, 4
jae 0x46d968
test dl, 2
je 0x46d4de
movsw word es:[edi], word [esi]
and edx, 1
je 0x46d4e4
movsb byte es:[edi], byte [esi]
mov dword [0x4bf38c], eax
jmp 0x46cb41
mov dword [ebp - 0x18c60], 0
cmp dword [ebp - 0x18ca8], 1
jne 0x46cc5c
mov dword [ebp - 0x18c60], 3
jmp 0x46cc5c
mov dword [esp], 1
mov esi, dword [ebp - 0x18cc4]
call esi
mov dword [0x4bf394], eax
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__fileno]
mov dword [esp + 4], 0x8000
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__setmode]
mov eax, dword [0x4bf394]
jmp 0x46ccef
cmp ebx, 0x20
jne 0x46d2c9
mov dword [ebp - 0x18cd8], 0
jmp 0x46cc0f
cmp byte [ebp - 0x18d08], 0
jne 0x46d107
mov ecx, dword [ebp - 0x18d00]
lea ecx, [ecx + ebx]
mov eax, 0x240000
xor edx, edx
div dword [ebp - 0x18cfc]
and eax, 0xfffffffe
cmp ecx, eax
jae 0x46d107
mov dword [ebp - 0x18ce8], ecx
add ebx, dword [0x4bf38c]
add ebx, esi
mov edi, dword [ebp - 0x18d00]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._memset
mov edi, dword [ebp - 0x18ce8]
mov byte [ebp - 0x18d08], 1
jmp 0x46d107
mov edx, dword [0x4bf394]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov ecx, dword [0x4bf39c]
mov dword [esp], ecx
call sym._fwrite
mov esi, eax
mov eax, dword [0x4bf398]
cmp eax, esi
jne 0x46df9b
mov dword [esp + 8], eax
mov edx, dword [0x4bf39c]
mov dword [esp + 4], edx
movzx ecx, word [ebp - 0x18cde]
mov dword [esp], ecx
call sym._XingHeaderUpdateCRC
mov word [ebp - 0x18cde], ax
mov dword [0x4bf398], 0
jmp 0x46d18c
je 0x46d0cb
mov ecx, dword [0x4bf398]
test ecx, ecx
je 0x46d699
mov edx, dword [0x4bf394]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov esi, dword [0x4bf39c]
mov dword [esp], esi
call sym._fwrite
mov ebx, eax
mov eax, dword [0x4bf398]
cmp eax, ebx
jne 0x46d98c
mov dword [esp + 8], eax
mov edi, dword [0x4bf39c]
mov dword [esp + 4], edi
movzx ecx, word [ebp - 0x18cde]
mov dword [esp], ecx
call sym._XingHeaderUpdateCRC
mov word [ebp - 0x18cde], ax
mov edx, dword [ebp - 0x18d00]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov esi, dword [0x4bf390]
mov dword [esp], esi
call sym._memset
cmp dword [ebp - 0x18ca0], 0x7cff
jg 0x46d760
mov ebx, dword [ebp - 0x18cf0]
mov eax, ebx
add eax, ebx
mov dword [ebp - 0x18cf0], eax
jmp 0x46d760
mov esi, dword [0x4bf39c]
mov dword [esp + 4], esi
mov edi, dword [0x4bf390]
mov dword [esp], edi
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.MP3_audio_encode_unsigned_char__unsigned_char_
sub esp, 8
mov dword [0x4bf398], edx
add dword [ebp - 0x18cdc], edx
mov eax, dword [0x4bf394]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov edx, dword [0x4bf39c]
mov dword [esp], edx
call sym._fwrite
mov ecx, dword [0x4bf398]
cmp ecx, eax
jne 0x46d98c
mov dword [esp + 8], ecx
mov esi, dword [0x4bf39c]
mov dword [esp + 4], esi
movzx edi, word [ebp - 0x18cde]
mov dword [esp], edi
call sym._XingHeaderUpdateCRC
mov word [ebp - 0x18cde], ax
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.L3_audio_encode_get_frames__
mov edi, dword [ebp - 0x18cf0]
cmp eax, edi
jb 0x46d6de
mov dword [esp + 4], 0x64
mov esi, dword [ebp - 0x18cdc]
mov dword [esp], esi
mov edx, dword [ebp - 0x18cd0]
mov ecx, dword [ebp - 0x18ccc]
lea eax, [ebp - 0x183ac]
call sym.print_progress_CMp3Enc__unsigned_long_long__unsigned_int__int_
mov dword [esp], 2
mov ebx, dword [ebp - 0x18cc4]
call ebx
mov dword [esp + 4], str._n_______________________________________________________________________________
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov dword [esp], 2
call ebx
mov dword [esp + 4], str._n_Compress_Ratio
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov ecx, dword [0x4bf3a4]
test ecx, ecx
jne 0x46deff
lea edx, [esi - 0x80000000]
pxor xmm2, xmm2
cvtsi2sd xmm2, edx
addsd xmm2, qword [0x4a9998]
mulsd xmm2, qword [0x4a9990]
fild qword [ebp - 0x18cb0]
mov edi, dword [ebp - 0x18cac]
test edi, edi
jns 0x46d81b
fadd dword [0x4a9968]
fstp qword [ebp - 0x18cd0]
movsd xmm1, qword [ebp - 0x18cd0]
divsd xmm2, xmm1
movsd qword [ebp - 0x18cd0], xmm2
mov dword [esp], 2
mov esi, dword [ebp - 0x18cc4]
call esi
movsd xmm3, qword [ebp - 0x18cd0]
movsd qword [esp + 8], xmm3
mov dword [esp + 4], str._3.6f__
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov ebx, dword [0x4bf3a8]
test ebx, ebx
je 0x46d237
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov ecx, dword [0x4bf394]
mov dword [esp], ecx
call sym._fseek
mov eax, dword [0x4bf394]
mov dword [esp + 0xc], eax
mov edi, dword [ebp - 0x18d10]
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov edx, dword [0x4bf39c]
mov dword [esp], edx
call sym._fread
cmp edi, eax
je 0x46dfd0
mov dword [esp], 2
mov esi, dword [ebp - 0x18cc4]
call esi
mov dword [esp + 4], str._n_READ_UNEXPECTED_NUMBER_OF_BYTES_WRITING_XING_HEADER
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov ecx, dword [ebp - 0x18cd0]
mov edx, dword [ebp - 0x18ccc]
movd xmm3, ecx
movd xmm5, edx
punpckldq xmm3, xmm5
movq qword [ebp - 0x18cc0], xmm3
fild qword [ebp - 0x18cc0]
test edx, edx
jns 0x46d913
fadd dword [0x4a9968]
fstp qword [ebp - 0x18ce8]
movsd xmm6, qword [ebp - 0x18ce8]
mulsd xmm6, qword [0x4a9990]
movd xmm7, esi
movd xmm0, ebx
punpckldq xmm7, xmm0
movq qword [ebp - 0x18cc0], xmm7
fild qword [ebp - 0x18cc0]
test ebx, ebx
jns 0x46d94d
fadd dword [0x4a9968]
fstp qword [ebp - 0x18ce8]
movsd xmm4, qword [ebp - 0x18ce8]
divsd xmm6, xmm4
cvttsd2si esi, xmm6
jmp 0x46d1ef
test edi, 1
jne 0x46dfbd
test edi, 2
jne 0x46dfa9
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x46d4d7
mov dword [esp], 2
mov eax, dword [ebp - 0x18cc4]
call eax
mov dword [esp + 4], str._n_FILE_WRITE_ERROR
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov dword [esp], 2
mov edi, dword [ebp - 0x18cc4]
call edi
mov dword [esp + 4], str._n_ENCODER_INIT_FAIL
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov ebx, dword [0x4bf384]
mov dword [esp], ebx
mov ebx, dword [dbg._ftelli64]
call ebx
mov esi, eax
mov edi, edx
and eax, edx
cmp eax, 0xffffffff
je 0x46dab5
mov dword [esp + 0xc], 2
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov ecx, dword [0x4bf384]
mov dword [esp], ecx
mov eax, dword [dbg._fseeki64]
mov dword [ebp - 0x18cc8], eax
call eax
test eax, eax
jne 0x46dab5
mov edx, dword [0x4bf384]
mov dword [esp], edx
call ebx
mov dword [ebp - 0x18cd8], eax
mov dword [ebp - 0x18cd4], edx
mov dword [esp + 0xc], 0
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov ebx, dword [0x4bf384]
mov dword [esp], ebx
mov ecx, dword [ebp - 0x18cc8]
call ecx
mov edx, eax
mov eax, dword [ebp - 0x18cd8]
mov ecx, dword [ebp - 0x18cd4]
and eax, ecx
cmp eax, 0xffffffff
je 0x46dab5
test edx, edx
jne 0x46dab5
mov eax, dword [0x4bf38c]
mov ebx, eax
sar ebx, 0x1f
sub esi, eax
sbb edi, ebx
mov ecx, dword [ebp - 0x18cd8]
mov ebx, dword [ebp - 0x18cd4]
sub ecx, esi
sbb ebx, edi
test ebx, ebx
js 0x46dab5
mov edx, dword [ebp - 0x18cb0]
mov esi, dword [ebp - 0x18cac]
cmp edx, ecx
mov edi, esi
sbb edi, ebx
jae 0x46d3e2
mov dword [esp], 2
mov ebx, dword [ebp - 0x18cc4]
call ebx
mov dword [esp + 4], str._n_THE_INPUT_FILE_INDICATES_MAX_DATA_SIZE_BUT_IS_LARGER._THE_WAV_FILE_IS_INVALID.
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
mov dword [esp], 2
call ebx
mov dword [esp + 4], str._n_USE_OPTION__IL_TO_ENCODE_ANYWAY.
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov dword [ebp - 0x18d14], 0xffffffff
mov dword [ebp - 0x18d10], 0
jmp 0x46cf2e
mov byte [ebp - 0x18cdf], 0
mov word [ebp - 0x18cde], 0
mov dword [ebp - 0x18cd0], 0
mov dword [ebp - 0x18ccc], 0
mov dword [ebp - 0x18ce8], 1
jmp 0x46db42
add dword [ebp - 0x18ce8], 1
mov edx, dword [ebp - 0x18ce8]
sub edx, 1
mov dword [ebp - 0x18cf0], edx
mov edi, dword [0x4bf38c]
mov ebx, dword [0x4bf390]
mov ecx, dword [0x4bf388]
mov esi, dword [ebp - 0x18cc8]
cmp edi, esi
jge 0x46dc8f
mov dword [esp + 8], edi
add ecx, ebx
mov dword [esp + 4], ecx
mov dword [esp], ebx
call sym._memmove
mov ecx, dword [0x4bf38c]
mov eax, 0x120000
mov edi, eax
sub edi, ecx
xor edx, edx
div dword [ebp - 0x18cfc]
mov eax, edi
sub eax, edx
mov edx, dword [ebp - 0x18cb0]
mov esi, eax
mov edi, eax
sar edi, 0x1f
add esi, dword [ebp - 0x18cf8]
adc edi, dword [ebp - 0x18cf4]
mov dword [ebp - 0x18d08], esi
mov dword [ebp - 0x18d04], edi
cmp edx, esi
mov edi, dword [ebp - 0x18cac]
sbb edi, dword [ebp - 0x18d04]
jae 0x46dbdd
mov eax, edx
mov edx, dword [ebp - 0x18cf8]
sub eax, edx
mov esi, dword [0x4bf384]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], 1
add ecx, ebx
mov dword [esp], ecx
call sym._fread
mov ebx, eax
mov edi, eax
test eax, eax
jle 0x46deb4
add dword [ebp - 0x18cf8], eax
adc dword [ebp - 0x18cf4], 0
mov ecx, dword [0x4bf384]
mov dword [esp], ecx
call sym._feof
mov esi, dword [0x4bf390]
test eax, eax
jne 0x46dde6
mov eax, dword [ebp - 0x18cf8]
mov edx, dword [ebp - 0x18cf4]
xor eax, dword [ebp - 0x18cb0]
xor edx, dword [ebp - 0x18cac]
or eax, edx
je 0x46dde6
mov dword [esp + 4], edi
add esi, dword [0x4bf38c]
mov dword [esp], esi
call sym._cvt_to_pcm
add eax, dword [0x4bf38c]
mov dword [0x4bf38c], eax
mov dword [0x4bf388], 0
mov ebx, dword [ebp - 0x18cc8]
cmp eax, ebx
jl 0x46d638
xor ecx, ecx
mov ebx, dword [0x4bf390]
mov esi, dword [0x4bf398]
add esi, dword [0x4bf39c]
mov dword [esp + 4], esi
add ebx, ecx
mov dword [esp], ebx
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.MP3_audio_encode_unsigned_char__unsigned_char_
sub esp, 8
mov edi, eax
mov ebx, edx
sub dword [0x4bf38c], eax
add dword [0x4bf388], eax
mov eax, dword [0x4bf398]
add eax, edx
mov dword [0x4bf398], eax
cmp eax, 0x1f4c0
ja 0x46de4e
add dword [ebp - 0x18cdc], ebx
mov eax, edi
cdq
add eax, dword [ebp - 0x18cd0]
adc edx, dword [ebp - 0x18ccc]
mov edi, dword [ebp - 0x18cb0]
mov ebx, dword [ebp - 0x18cac]
cmp edi, eax
mov esi, ebx
sbb esi, edx
cmovae edi, eax
mov dword [ebp - 0x18cd0], edi
cmovae ebx, edx
mov dword [ebp - 0x18ccc], ebx
sub dword [ebp - 0x18cd8], 1
mov ecx, dword [ebp - 0x18cd8]
test ecx, ecx
jle 0x46debf
mov eax, dword [ebp - 0x18ce8]
and eax, 0x7f
cmp eax, dword [0x4a3264]
jne 0x46db3b
mov edi, 0xffffffff
mov edx, dword [0x4bf3a4]
test edx, edx
jne 0x46ddbd
mov ebx, dword [ebp - 0x18cd0]
mov esi, dword [ebp - 0x18ccc]
movd xmm0, ebx
movd xmm4, esi
punpckldq xmm0, xmm4
movq qword [ebp - 0x18cc0], xmm0
fild qword [ebp - 0x18cc0]
test esi, esi
jns 0x46dd7b
fadd dword [0x4a9968]
fstp qword [ebp - 0x18cf0]
movsd xmm2, qword [ebp - 0x18cf0]
mulsd xmm2, qword [0x4a9990]
fild qword [ebp - 0x18cb0]
mov ecx, dword [ebp - 0x18cac]
test ecx, ecx
jns 0x46dda7
fadd dword [0x4a9968]
fstp qword [ebp - 0x18cf0]
movsd xmm1, qword [ebp - 0x18cf0]
divsd xmm2, xmm1
cvttsd2si edi, xmm2
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x18cdc]
mov dword [esp], eax
mov edx, dword [ebp - 0x18cd0]
mov ecx, dword [ebp - 0x18ccc]
lea eax, [ebp - 0x183ac]
call sym.print_progress_CMp3Enc__unsigned_long_long__unsigned_int__int_
jmp 0x46db3b
cmp byte [ebp - 0x18cdf], 0
jne 0x46dc52
mov ecx, dword [ebp - 0x18d00]
lea ecx, [ecx + ebx]
mov eax, 0x240000
xor edx, edx
div dword [ebp - 0x18cfc]
and eax, 0xfffffffe
cmp ecx, eax
jae 0x46dc52
mov dword [ebp - 0x18d08], ecx
add ebx, dword [0x4bf38c]
add ebx, esi
mov edi, dword [ebp - 0x18d00]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._memset
mov edi, dword [ebp - 0x18d08]
mov byte [ebp - 0x18cdf], 1
jmp 0x46dc52
mov edx, dword [0x4bf394]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov ecx, dword [0x4bf39c]
mov dword [esp], ecx
call sym._fwrite
mov esi, eax
mov eax, dword [0x4bf398]
cmp eax, esi
jne 0x46df6b
mov dword [esp + 8], eax
mov edx, dword [0x4bf39c]
mov dword [esp + 4], edx
movzx ecx, word [ebp - 0x18cde]
mov dword [esp], ecx
call sym._XingHeaderUpdateCRC
mov word [ebp - 0x18cde], ax
mov dword [0x4bf398], 0
jmp 0x46dcd9
je 0x46dc16
jmp 0x46d638
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.L3_audio_encode_get_frames_bytes__
mov edi, dword [ebp - 0x18d0c]
add edx, edi
mov dword [esp + 4], edx
add eax, 1
mov dword [esp], eax
call sym._XingHeaderTOC
mov dword [ebp - 0x18cd8], eax
jmp 0x46dd27
lea eax, [ebp - 0x18c60]
mov dword [esp], eax
call sym.print_ec_E_CONTROL_
jmp 0x46ce0a
mov dword [esp], 2
mov eax, dword [ebp - 0x18cc4]
call eax
mov dword [esp + 4], 0x4a9488
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d862
mov dword [esp], 2
mov esi, dword [ebp - 0x18cc4]
call esi
mov dword [esp + 4], str._n_CANNOT_CREATE_OUTPUT_FILE
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov dword [esp], 2
mov ebx, dword [ebp - 0x18cc4]
call ebx
mov dword [esp + 4], str._n_FILE_READ_ERROR
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d237
mov edx, dword [ebp - 0x18ce8]
mov dword [ebp - 0x18cf0], edx
mov dword [esp], 2
mov edi, dword [ebp - 0x18cc4]
call edi
mov dword [esp + 4], str._n_FILE_WRITE_ERROR
mov dword [esp], eax
call sym.fprintf__iobuf__char_const__..._
jmp 0x46d638
mov eax, dword [ebp - 0x18cd8]
mov dword [ebp - 0x18cf0], eax
jmp 0x46df77
movzx ecx, word [esi]
mov word [edi], cx
add edi, 2
add esi, 2
sub edx, 2
jmp 0x46d980
movzx ecx, byte [esi]
mov byte [edi], cl
add edi, 1
add esi, 1
lea edx, [eax - 1]
jmp 0x46d974
mov ebx, dword [ebp - 0x18ca4]
lea ecx, [ebx + 7]
test ebx, ebx
cmovns ecx, ebx
sar ecx, 3
imul ecx, dword [ebp - 0x18ca8]
mov dword [esp + 8], ecx
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x18cf8]
mov edi, dword [ebp - 0x18cf4]
mov dword [esp], eax
mov dword [esp + 4], edi
call sym.___udivdi3
mov esi, eax
mov edi, edx
lea ecx, [ebp - 0x183ac]
call method.CMp3Enc.L3_audio_encode_get_frames__
mov edx, eax
movzx ebx, word [ebp - 0x18cde]
mov dword [esp + 0x34], ebx
mov ecx, dword [ebp - 0x18c58]
mov dword [esp + 0x30], ecx
mov eax, dword [ebp - 0x18ca0]
mov dword [esp + 0x2c], eax
mov ebx, dword [ebp - 0x18c4c]
mov dword [esp + 0x28], ebx
mov ecx, dword [ebp - 0x18cdc]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov esi, dword [0x4bf39c]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov edi, dword [ebp - 0x18d14]
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._XingHeaderUpdateInfo
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov edx, dword [0x4bf394]
mov dword [esp], edx
call sym._fseek
mov eax, dword [0x4bf394]
mov dword [esp + 0xc], eax
mov ebx, dword [ebp - 0x18d10]
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov ecx, dword [0x4bf39c]
mov dword [esp], ecx
call sym._fwrite
jmp 0x46d237