Function at 0x4090b0
Capabilities:
Write file on windows

Disassembly:
push esi
push edi
push ebx
push ebp
mov eax, 0x4a4a0
call fcn.00497d00
mov eax, dword [0x52cfb4]
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.0040fe10
xor eax, eax
push eax
push eax
push ebp
call fcn.00427ab0
mov ebx, eax
add esp, 0x18
test ebx, ebx
jbe 0x40913c
push ebx
call fcn.0049d38a
mov esi, eax
add esp, 4
test esi, esi
je 0x40916e
push ebx
push esi
push ebp
call fcn.00427ab0
mov edi, eax
push dword [esp + 0x4a4c4]
push edi
push 1
push esi
call fcn.0049c4ae
mov dword [esp + 0x2c], eax
push esi
call fcn.0049bf3e
add esp, 0x20
cmp edi, dword [esp + 0x10]
jne 0x40928d
jmp 0x40916e
push ebp
call fcn.00407390
mov esi, eax
push ebp
call fcn.00407380
mov ebx, eax
add esp, 8
test ebx, ebx
jbe 0x40916e
push dword [esp + 0x4a4b8]
push ebx
push 1
push esi
call fcn.0049c4ae
add esp, 0x10
cmp eax, ebx
jne 0x40980c
cmp dword [0x52ef44], 1
je 0x4097f8
push 0x24000
push ebp
call fcn.00416a20
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 0x4091cd
cmp dword [0x52ef44], 1
je 0x4092c5
jmp 0x409278
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.004102c0
push 0x24000
lea eax, [esp + 0x24024]
push eax
push ebp
push esi
push edi
push dword [esp + 0x4a4cc]
call fcn.00411470
mov edx, eax
add esp, 0x1c
sub ebx, ebp
lea edi, [edi + ebp*4]
lea esi, [esi + ebp*4]
test edx, edx
jl 0x4097b1
push dword [esp + 0x4a4b8]
push edx
push 1
lea ebp, [esp + 0x24028]
push ebp
mov dword [esp + 0x28], edx
call fcn.0049c4ae
mov edx, dword [esp + 0x28]
add esp, 0x10
cmp eax, edx
jne 0x40977f
test ebx, ebx
jg 0x4091e2
mov edi, dword [esp + 0x14]
lea esi, [esp + 0x4801c]
mov ebx, dword [esp + 0x4a4b8]
mov ebp, dword [esp + 0x4a4b4]
cmp dword [0x52ef44], 1
je 0x4092c5
test edi, edi
jle 0x4092d0
push esi
push ebp
call fcn.00402570
mov edi, eax
add esp, 8
jmp 0x4091b7
push ebp
call fcn.004109d0
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 [0x52cfb4]
je 0x409346
call fcn.00497ce0
push ebx
call fcn.0049bee5
add esp, 4
jmp 0x409278
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x4a4bc], 0
je 0x4092f3
push 0x24000
lea eax, [esp + 0x24020]
push eax
push ebp
call fcn.00411630
jmp 0x409306
push 0x24000
lea eax, [esp + 0x24020]
push eax
push ebp
call fcn.00411930
mov esi, eax
add esp, 0xc
test esi, esi
jge 0x409356
cmp esi, 0xffffffff
je 0x409496
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 [0x52cfb4]
jne 0x4092c0
mov eax, 1
add esp, 0x4a4a0
pop ebp
pop ebx
pop edi
pop esi
ret
push ebp
call fcn.004109d0
push dword [esp + 0x4a4bc]
push esi
push 1
lea eax, [esp + 0x2402c]
push eax
call fcn.0049c4ae
add esp, 0x14
cmp eax, esi
jne 0x40974d
cmp dword [0x52ef44], 1
je 0x409739
lea edi, [esp + 0x4a41c]
push 0x80
push edi
push ebp
call fcn.00428d90
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4093ce
cmp esi, 0x80
ja 0x4094f4
push dword [esp + 0x4a4b8]
push esi
push 1
push edi
call fcn.0049c4ae
add esp, 0x10
cmp eax, esi
jne 0x4094a8
cmp dword [0x52ef44], 1
je 0x409725
lea esi, [esp + 0x1c]
push 0x24000
push esi
push ebp
call fcn.004298c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x40944f
cmp dword [0x52ef48], 0
jle 0x40955a
cmp edi, 0x24000
ja 0x409542
push 0
push ebx
push dword [esp + 0x4a4c0]
call fcn.0049cd22
add esp, 0xc
test eax, eax
jne 0x409530
push dword [esp + 0x4a4b8]
push edi
push 1
push esi
call fcn.0049c4ae
add esp, 0x10
cmp eax, edi
jne 0x40951e
cmp dword [0x52ef48], 0
jle 0x40950c
cmp dword [0x52ef44], 1
je 0x409711
cmp dword [0x52ef48], 0
jle 0x40956c
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x4092c0
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 0x409326
push str.Error_writing_ID3v1_tag__n
call fcn.004023b0
add esp, 4
cmp dword [0x52ef44], 1
je 0x4094e3
mov ecx, dword [esp + 0x4a49c]
mov dword [esp + 0x4a49c], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x4092c0
jmp 0x409346
push dword [esp + 0x4a4b8]
call fcn.0049bee5
add esp, 4
jmp 0x4094be
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 0x4093ce
push str.done_n
call fcn.00402270
add esp, 4
jmp 0x40944f
push str.Error_writing_LAME_tag__n
call fcn.004023b0
add esp, 4
jmp 0x40944f
push str.fatal_error:_cant_update_LAME_tag_frame__n
call fcn.004023b0
add esp, 4
jmp 0x40944f
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 0x40944f
push str.Writing_LAME_Tag...
call fcn.00402270
add esp, 4
jmp 0x409401
push ebp
call fcn.00415a30
add esp, 4
test eax, eax
jne 0x4096a7
cmp dword [0x52ef50], 0
je 0x409469
push ebp
call fcn.00415a50
add esp, 4
test eax, eax
je 0x409469
push ebp
call fcn.004166c0
pxor xmm1, xmm1
cvtsi2ss xmm1, eax
divss xmm1, dword [0x4b49e4]
push ebp
movss dword [esp + 0x18], xmm1
call fcn.00416700
fstp dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
movss xmm2, dword [esp + 0x1c]
add esp, 8
pxor xmm0, xmm0
comiss xmm1, xmm0
ja 0x40961f
pxor xmm0, xmm0
cvtss2sd xmm0, xmm1
comisd xmm0, xmmword [0x4b49d8]
jbe 0x4095fd
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 0x409469
xorps xmm1, xmmword [0x4b49b0]
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 0x409469
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 0x409695
push ebp
movss dword [esp + 0x14], xmm2
call fcn.00415740
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 0x409469
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 0x409469
push ebp
call fcn.00416680
mov ebx, eax
add esp, 4
pxor xmm0, xmm0
test ebx, ebx
cvtsi2ss xmm0, ebx
cvtss2sd xmm0, xmm0
divsd xmm0, qword [0x4b49d0]
mov eax, 0x4b4c30
mov edx, 0x4b4310
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 0x4096ff
cmp ebx, 0xfffffe02
jge 0x40957d
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 0x40957d
push dword [esp + 0x4a4b8]
call fcn.0049bee5
add esp, 4
jmp 0x40945c
push dword [esp + 0x4a4b8]
call fcn.0049bee5
add esp, 4
jmp 0x4093db
push dword [esp + 0x4a4b8]
call fcn.0049bee5
add esp, 4
jmp 0x40938b
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 [0x52cfb4]
jne 0x4092c0
jmp 0x409346
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 [0x52cfb4]
jne 0x4092c0
jmp 0x409346
cmp edx, 0xffffffff
je 0x4097e9
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 [0x52cfb4]
jne 0x4092c0
jmp 0x409346
push str.mp3_buffer_is_not_big_enough...__n
call fcn.004023b0
add esp, 4
jmp 0x4097c4
push dword [esp + 0x4a4b8]
call fcn.0049bee5
add esp, 4
jmp 0x40917b
push ebp
call fcn.004109d0
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 [0x52cfb4]
jne 0x4092c0
jmp 0x409346