Function at 0x404834
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
push ecx
push edx
push eax
mov eax, 0x4a428
call fcn.004475a0
mov ecx, dword [esp + 0x4a430]
mov edx, dword [esp + 0x4a42c]
mov eax, dword [esp + 0x4a428]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x48010], edx
mov esi, eax
mov edx, dword [ebp + 0x18]
mov eax, dword [0x482908]
mov dword [esp + 0x4a41c], eax
push edx
push ecx
push esi
call fcn.00409bfc
lea eax, [esp + 0x2401c]
push 0x24000
push eax
push esi
call fcn.0040f238
add esp, 0x18
mov ebx, eax
cmp ebx, 0x24000
ja 0x404e56
mov eax, dword [esp + 0x48010]
lea edx, [esp + 0x24010]
push eax
push ebx
push 1
push edx
call fcn.00447a36
add esp, 0x10
cmp eax, ebx
jne 0x404e25
mov eax, dword [0x484500]
cmp eax, 1
je 0x404e12
mov dword [esp + 0x14], ebx
lea eax, [esp + 0x4801c]
push eax
push esi
call fcn.00403088
add esp, 8
mov edi, eax
test edi, edi
jge 0x404906
mov eax, dword [0x484500]
cmp eax, 1
je 0x404b17
jmp 0x404976
push esi
call fcn.00409b3c
lea ecx, [esp + 0x48020]
lea edx, [esp + 0x49220]
lea eax, [esp + 0x24014]
push 0x24000
push eax
push edi
push edx
push ecx
push esi
call fcn.0040bcdc
add esp, 0x1c
mov ebx, eax
test ebx, ebx
jl 0x404dd4
mov eax, dword [esp + 0x48010]
lea edx, [esp + 0x24010]
push eax
push ebx
push 1
push edx
call fcn.00447a36
add esp, 0x10
cmp eax, ebx
jne 0x404dab
mov eax, dword [0x484500]
cmp eax, 1
je 0x404b17
test edi, edi
jg 0x4048df
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x404997
lea eax, [esp + 0x24010]
push 0x24000
push eax
push esi
call fcn.0040bcb4
jmp 0x4049aa
lea eax, [esp + 0x24010]
push 0x24000
push eax
push esi
call fcn.0040b8ec
add esp, 0xc
mov edi, eax
test edi, edi
jge 0x4049e8
cmp edi, 0xffffffff
je 0x404b2a
push edi
push str.mp3_internal_error:__error_code_i_n
call fcn.00401d80
add esp, 8
mov ecx, dword [esp + 0x4a41c]
call fcn.00446571
mov eax, 1
add esp, 0x4a434
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push esi
call fcn.00409548
mov eax, dword [esp + 0x48014]
lea edx, [esp + 0x24014]
push eax
push edi
push 1
push edx
call fcn.00447a36
add esp, 0x14
cmp eax, edi
jne 0x404d82
mov eax, dword [0x484500]
cmp eax, 1
je 0x404d6f
lea eax, [esp + 0x24010]
push 0x24000
push eax
push esi
call fcn.0040ef74
add esp, 0xc
mov edi, eax
cmp edi, 0x24000
ja 0x404d57
test edi, edi
jle 0x404a78
mov eax, dword [esp + 0x48010]
lea edx, [esp + 0x24010]
push eax
push edi
push 1
push edx
call fcn.00447a36
add esp, 0x10
cmp eax, edi
jne 0x404b4d
mov eax, dword [0x484500]
cmp eax, 1
je 0x404b3a
mov eax, dword [0x49e848]
test eax, eax
jle 0x404d38
push 0
push ebx
mov eax, dword [esp + 0x48018]
push eax
call fcn.00447510
add esp, 0xc
test eax, eax
jne 0x404d28
lea eax, [esp + 0x10]
push 0x24000
push eax
push esi
call fcn.004109d8
add esp, 0xc
mov ebx, eax
cmp ebx, 0x24000
ja 0x404d10
test ebx, ebx
jbe 0x404af3
mov eax, dword [esp + 0x48010]
lea edx, [esp + 0x10]
push eax
push ebx
push 1
push edx
call fcn.00447a36
add esp, 0x10
cmp eax, ebx
jne 0x404d00
mov eax, dword [0x484500]
cmp eax, 1
je 0x404ced
mov eax, dword [0x49e848]
test eax, eax
jle 0x404b76
mov ecx, dword [esp + 0x4a41c]
call fcn.00446571
xor eax, eax
add esp, 0x4a434
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x48010]
push eax
call fcn.0044693f
pop ecx
jmp 0x40496e
push str.mp3_buffer_is_not_big_enough...__n
call fcn.00401d80
pop ecx
jmp 0x4049ca
mov eax, dword [esp + 0x48010]
push eax
call fcn.0044693f
pop ecx
jmp 0x404a78
push str.Error_writing_ID3v1_tag__n
call fcn.00401d80
pop ecx
mov ecx, dword [esp + 0x4a41c]
call fcn.00446571
mov eax, 1
add esp, 0x4a434
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push esi
call fcn.0040e9ac
pop ecx
test eax, eax
je 0x404b8c
push str.done_n
call fcn.00401c30
pop ecx
push esi
call fcn.0040e8ac
pop ecx
test eax, eax
jne 0x404c88
mov eax, dword [0x49e85c]
test eax, eax
je 0x404afc
push esi
call fcn.0040e8a4
pop ecx
test eax, eax
je 0x404afc
push esi
call fcn.0040e364
mov dword [esp + 0x48014], eax
fild dword [esp + 0x48014]
fdiv dword [0x45a914]
push esi
fstp dword [esp + 0x48020]
call fcn.0040e350
fld dword [esp + 0x48020]
add esp, 8
fldz
fcomp st(1)
fnstsw ax
sahf
jp 0x404bf3
jb 0x404c29
fstp st(1)
fcom qword [0x45a8f8]
fnstsw ax
sahf
jbe 0x404c12
fstp st(0)
push str._nThe_waveform_does_not_clip_and_is_less_than_0.1dB_away_from_full_scale._n
call fcn.00401c30
pop ecx
jmp 0x404afc
mov dword [esp], str._nThe_waveform_does_not_clip_and_is_at_least__.1fdB_away_from_full_scale._n
fchs
fstp qword [esp + 4]
call fcn.00401c30
jmp 0x404afc
fxch st(1)
fstp dword [esp + 0x48010]
fstp qword [esp + 4]
mov dword [esp], str.WARNING:_clipping_occurs_at_the_current_gain._Set_your_decoder_to_decrease_n_________the__gain__by__at_least__.1fdB_or_encode_again
call fcn.00401c30
fldz
fld dword [esp + 0x48010]
fcom st(1)
fnstsw ax
fxch st(1)
fstp st(0)
sahf
jbe 0x404c76
fstp qword [esp + 4]
mov dword [esp], str.using____scale__.2f_n
call fcn.00401c30
push str._________or_less__the_value_under___scale_is_approximate_._n
call fcn.00401c30
pop ecx
jmp 0x404afc
fstp st(0)
push str.using___scale__arg__n__________For___a___suggestion__on__the__optimal__value__of___arg___encode_n_________with____scale_1__first__n
call fcn.00401c30
pop ecx
jmp 0x404afc
push esi
call fcn.0040e378
pop ecx
mov ebx, eax
test ebx, ebx
jle 0x404c9c
mov eax, 0x45ab64
jmp 0x404ca1
mov eax, 0x45a270
mov dword [esp], str.ReplayGain:__s_.1fdB_n
mov dword [esp + 4], eax
mov dword [esp + 0x48010], ebx
fild dword [esp + 0x48010]
fdiv qword [0x45a8f0]
fstp qword [esp + 8]
call fcn.00401c30
cmp ebx, 0x1fe
jg 0x404cdd
cmp ebx, 0xfffffe02
jge 0x404b9b
push str.WARNING:_ReplayGain_exceeds_the__51dB_to_51dB_range._Such_a_result_is_too_n_________high_to_be_stored_in_the_header._n
call fcn.00401d80
pop ecx
jmp 0x404b9b
mov eax, dword [esp + 0x48010]
push eax
call fcn.0044693f
pop ecx
jmp 0x404af3
push str.Error_writing_LAME_tag__n
call fcn.00401d80
pop ecx
jmp 0x404af3
push ebx
push 0x24000
push str.Error_writing_LAME_tag_frame:_buffer_too_small:_buffer_size_d__frame_size_d_n
call fcn.00401d80
add esp, 0xc
jmp 0x404af3
push str.fatal_error:_cant_update_LAME_tag_frame__n
call fcn.00401d80
pop ecx
jmp 0x404af3
push esi
call fcn.0040e9ac
pop ecx
test eax, eax
je 0x404a85
push str.Writing_LAME_Tag...
call fcn.00401c30
pop ecx
jmp 0x404a85
push edi
push 0x24000
push str.Error_writing_ID3v1_tag:_buffer_too_small:_buffer_size_d__ID3v1_size_d_n
call fcn.00401d80
add esp, 0xc
jmp 0x404a78
mov eax, dword [esp + 0x48010]
push eax
call fcn.0044693f
pop ecx
jmp 0x404a1f
push str.Error_writing_mp3_output__n
call fcn.00401d80
pop ecx
mov ecx, dword [esp + 0x4a41c]
call fcn.00446571
mov eax, 1
add esp, 0x4a434
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push str.Error_writing_mp3_output__n
call fcn.00401d80
pop ecx
mov ecx, dword [esp + 0x4a41c]
call fcn.00446571
mov eax, 1
add esp, 0x4a434
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp ebx, 0xffffffff
je 0x404e05
push ebx
push str.mp3_internal_error:__error_code_i_n
call fcn.00401d80
add esp, 8
mov ecx, dword [esp + 0x4a41c]
call fcn.00446571
mov eax, 1
add esp, 0x4a434
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push str.mp3_buffer_is_not_big_enough...__n
call fcn.00401d80
pop ecx
jmp 0x404de7
mov eax, dword [esp + 0x48010]
push eax
call fcn.0044693f
pop ecx
jmp 0x4048db
push esi
call fcn.00409548
push str.Error_writing_ID3v2_tag__n
call fcn.00401d80
add esp, 8
mov ecx, dword [esp + 0x4a41c]
call fcn.00446571
mov eax, 1
add esp, 0x4a434
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push esi
call fcn.00409548
push ebx
push 0x24000
push str.Error_writing_ID3v2_tag:_buffer_too_small:_buffer_size_d__ID3v2_size_d_n
call fcn.00401d80
add esp, 0x10
mov ecx, dword [esp + 0x4a41c]
call fcn.00446571
mov eax, 1
add esp, 0x4a434
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret