Function at 0x409410
Capabilities:
Write file on windows

Disassembly:
push esi
push edi
push ebx
push ebp
mov eax, 0x4a4a0
call fcn.00466f60
mov eax, dword [0x4f6e34]
xor eax, esp
mov ebp, dword [esp + 0x4a4b4]
mov dword [esp + 0x4a49c], eax
push dword [esp + 0x4a4c4]
push dword [esp + 0x4a4c4]
push ebp
call fcn.00410150
xor eax, eax
push eax
push eax
push ebp
call fcn.0041a490
mov ebx, eax
add esp, 0x18
test ebx, ebx
jbe 0x40949c
push ebx
call fcn.0046c645
mov esi, eax
add esp, 4
test esi, esi
je 0x4094ce
push ebx
push esi
push ebp
call fcn.0041a490
mov edi, eax
push dword [esp + 0x4a4c4]
push edi
push 1
push esi
call fcn.0046b769
mov dword [esp + 0x2c], eax
push esi
call fcn.0046b1f9
add esp, 0x20
cmp edi, dword [esp + 0x10]
jne 0x4095ed
jmp 0x4094ce
push ebp
call fcn.004073d0
mov esi, eax
push ebp
call fcn.004073c0
mov ebx, eax
add esp, 8
test ebx, ebx
jbe 0x4094ce
push dword [esp + 0x4a4b8]
push ebx
push 1
push esi
call fcn.0046b769
add esp, 0x10
cmp eax, ebx
jne 0x409b6c
cmp dword [0x4f8e04], 1
je 0x409b58
push 0x24000
push ebp
call fcn.00416e00
mov esi, eax
mov eax, 1
cmp esi, 1
lea edi, [esp + 0x48024]
push edi
push ebp
cmovle esi, eax
call fcn.00402570
add esp, 0x10
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], esi
mov esi, edi
mov ebx, dword [esp + 0x4a4b8]
mov edi, eax
test edi, edi
jge 0x40952d
cmp dword [0x4f8e04], 1
je 0x409625
jmp 0x4095d8
mov ecx, esi
lea edx, [esp + 0x4921c]
mov eax, edi
mov esi, edx
mov dword [esp + 0x14], edi
mov ebx, eax
mov edi, ecx
push dword [esp + 0x4a4b4]
mov ebp, dword [esp + 0x20]
cmp ebx, ebp
cmovl ebp, ebx
call fcn.00410600
push 0x24000
lea eax, [esp + 0x24024]
push eax
push ebp
push esi
push edi
push dword [esp + 0x4a4cc]
call fcn.004117b0
mov edx, eax
add esp, 0x1c
sub ebx, ebp
lea edi, [edi + ebp*4]
lea esi, [esi + ebp*4]
test edx, edx
jl 0x409b11
push dword [esp + 0x4a4b8]
push edx
push 1
lea ebp, [esp + 0x24028]
push ebp
mov dword [esp + 0x28], edx
call fcn.0046b769
mov edx, dword [esp + 0x28]
add esp, 0x10
cmp eax, edx
jne 0x409adf
test ebx, ebx
jg 0x409542
mov edi, dword [esp + 0x14]
lea esi, [esp + 0x4801c]
mov ebx, dword [esp + 0x4a4b8]
mov ebp, dword [esp + 0x4a4b4]
cmp dword [0x4f8e04], 1
je 0x409625
test edi, edi
jle 0x409630
push esi
push ebp
call fcn.00402570
mov edi, eax
add esp, 8
jmp 0x409517
push ebp
call fcn.00410d10
push str.Error_writing_ID3v2_tag__n
call fcn.004023b0
add esp, 8
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
je 0x4096a6
call fcn.00466f40
push ebx
call fcn.0046b1a0
add esp, 4
jmp 0x4095d8
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x4a4bc], 0
je 0x409653
push 0x24000
lea eax, [esp + 0x24020]
push eax
push ebp
call fcn.00411970
jmp 0x409666
push 0x24000
lea eax, [esp + 0x24020]
push eax
push ebp
call fcn.00411c70
mov esi, eax
add esp, 0xc
test esi, esi
jge 0x4096b6
cmp esi, 0xffffffff
je 0x4097f6
push esi
push str.mp3_internal_error:__error_code_i_n
call fcn.004023b0
add esp, 8
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x409620
mov eax, 1
add esp, 0x4a4a0
pop ebp
pop ebx
pop edi
pop esi
ret
push ebp
call fcn.00410d10
push dword [esp + 0x4a4bc]
push esi
push 1
lea eax, [esp + 0x2402c]
push eax
call fcn.0046b769
add esp, 0x14
cmp eax, esi
jne 0x409aad
cmp dword [0x4f8e04], 1
je 0x409a99
lea edi, [esp + 0x4a41c]
push 0x80
push edi
push ebp
call fcn.0041b770
mov esi, eax
add esp, 0xc
test esi, esi
je 0x40972e
cmp esi, 0x80
ja 0x409854
push dword [esp + 0x4a4b8]
push esi
push 1
push edi
call fcn.0046b769
add esp, 0x10
cmp eax, esi
jne 0x409808
cmp dword [0x4f8e04], 1
je 0x409a85
lea esi, [esp + 0x1c]
push 0x24000
push esi
push ebp
call fcn.0041c220
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4097af
cmp dword [0x4f8e08], 0
jle 0x4098ba
cmp edi, 0x24000
ja 0x4098a2
push 0
push ebx
push dword [esp + 0x4a4c0]
call fcn.0046bfdd
add esp, 0xc
test eax, eax
jne 0x409890
push dword [esp + 0x4a4b8]
push edi
push 1
push esi
call fcn.0046b769
add esp, 0x10
cmp eax, edi
jne 0x40987e
cmp dword [0x4f8e08], 0
jle 0x40986c
cmp dword [0x4f8e04], 1
je 0x409a71
cmp dword [0x4f8e08], 0
jle 0x4098cc
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x409620
xor eax, eax
add esp, 0x4a4a0
pop ebp
pop ebx
pop edi
pop esi
ret
push str.mp3_buffer_is_not_big_enough...__n
call fcn.004023b0
add esp, 4
jmp 0x409686
push str.Error_writing_ID3v1_tag__n
call fcn.004023b0
add esp, 4
cmp dword [0x4f8e04], 1
je 0x409843
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x409620
jmp 0x4096a6
push dword [esp + 0x4a4b8]
call fcn.0046b1a0
add esp, 4
jmp 0x40981e
push esi
push 0x80
push str.Error_writing_ID3v1_tag:_buffer_too_small:_buffer_size_d__ID3v1_size_d_n
call fcn.004023b0
add esp, 0xc
jmp 0x40972e
push str.done_n
call fcn.00402270
add esp, 4
jmp 0x4097af
push str.Error_writing_LAME_tag__n
call fcn.004023b0
add esp, 4
jmp 0x4097af
push str.fatal_error:_cant_update_LAME_tag_frame__n
call fcn.004023b0
add esp, 4
jmp 0x4097af
push edi
push 0x24000
push str.Error_writing_LAME_tag_frame:_buffer_too_small:_buffer_size_d__frame_size_d_n
call fcn.004023b0
add esp, 0xc
jmp 0x4097af
push str.Writing_LAME_Tag...
call fcn.00402270
add esp, 4
jmp 0x409761
push ebp
call fcn.00415e10
add esp, 4
test eax, eax
jne 0x409a07
cmp dword [0x4f8e10], 0
je 0x4097c9
push ebp
call fcn.00415e60
add esp, 4
test eax, eax
je 0x4097c9
push ebp
call fcn.00416aa0
pxor xmm1, xmm1
cvtsi2ss xmm1, eax
divss xmm1, dword [0x483a84]
push ebp
movss dword [esp + 0x18], xmm1
call fcn.00416ae0
fstp dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
movss xmm2, dword [esp + 0x1c]
add esp, 8
pxor xmm0, xmm0
comiss xmm1, xmm0
ja 0x40997f
pxor xmm0, xmm0
cvtss2sd xmm0, xmm1
comisd xmm0, xmmword [0x483a78]
jbe 0x40995d
push str._nThe_waveform_does_not_clip_and_is_less_than_0.1dB_away_from_full_scale._n
call fcn.00402270
add esp, 4
jmp 0x4097c9
xorps xmm1, xmmword [0x483a50]
cvtss2sd xmm1, xmm1
mov dword [esp], str._nThe_waveform_does_not_clip_and_is_at_least__.1fdB_away_from_full_scale._n
movsd qword [esp + 4], xmm1
call fcn.00402270
jmp 0x4097c9
cvtss2sd xmm1, xmm1
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
movsd qword [esp + 4], xmm1
movss dword [esp + 0x10], xmm2
call fcn.00402270
movss xmm2, dword [esp + 0x10]
pxor xmm0, xmm0
comiss xmm2, xmm0
jbe 0x4099f5
push ebp
movss dword [esp + 0x14], xmm2
call fcn.00415af0
fstp dword [esp + 0x18]
movss xmm2, dword [esp + 0x14]
movss xmm0, dword [esp + 0x18]
add esp, 4
mulss xmm2, xmm0
cvtss2sd xmm2, xmm2
mov dword [esp], str.using____scale__.2f_n
movsd qword [esp + 4], xmm2
call fcn.00402270
push str._________or_less__the_value_under___scale_is_approximate_._n
call fcn.00402270
add esp, 4
jmp 0x4097c9
push str.using___scale__arg__n__________For___a___suggestion__on__the__optimal__value__of___arg___encode_n_________with____scale_1__first__n
call fcn.00402270
add esp, 4
jmp 0x4097c9
push ebp
call fcn.00416a60
mov ebx, eax
add esp, 4
pxor xmm0, xmm0
test ebx, ebx
cvtsi2ss xmm0, ebx
cvtss2sd xmm0, xmm0
divsd xmm0, qword [0x483a70]
mov eax, 0x483cd0
mov edx, 0x4832d0
mov dword [esp], str.ReplayGain:__s_.1fdB_n
cmovg edx, eax
mov dword [esp + 4], edx
movsd qword [esp + 8], xmm0
call fcn.00402270
cmp ebx, 0x1fe
jg 0x409a5f
cmp ebx, 0xfffffe02
jge 0x4098dd
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.004023b0
add esp, 4
jmp 0x4098dd
push dword [esp + 0x4a4b8]
call fcn.0046b1a0
add esp, 4
jmp 0x4097bc
push dword [esp + 0x4a4b8]
call fcn.0046b1a0
add esp, 4
jmp 0x40973b
push dword [esp + 0x4a4b8]
call fcn.0046b1a0
add esp, 4
jmp 0x4096eb
push str.Error_writing_mp3_output__n
call fcn.004023b0
add esp, 4
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x409620
jmp 0x4096a6
push str.Error_writing_mp3_output__n
call fcn.004023b0
add esp, 4
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x409620
jmp 0x4096a6
cmp edx, 0xffffffff
je 0x409b49
push edx
push str.mp3_internal_error:__error_code_i_n
call fcn.004023b0
add esp, 8
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x409620
jmp 0x4096a6
push str.mp3_buffer_is_not_big_enough...__n
call fcn.004023b0
add esp, 4
jmp 0x409b24
push dword [esp + 0x4a4b8]
call fcn.0046b1a0
add esp, 4
jmp 0x4094db
push ebp
call fcn.00410d10
push str.Error_writing_ID3v2_tag__n
call fcn.004023b0
add esp, 8
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x409620
jmp 0x4096a6