Function at 0x401000
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x4f4
push 3
call fcn.0042a800
pop ecx
call fcn.0041c4d4
mov edi, eax
lea eax, [esp + 0x3c0]
mov dword [esp + 0x6c], eax
add edi, 0xffffff38
call fcn.00401e62
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x3c]
call fcn.00402118
mov ebx, eax
test ebx, ebx
jne 0x42d4dd
mov eax, dword [esp + 0x48c]
test eax, eax
jle 0x401065
call fcn.0041c54e
add eax, 0x40
call fcn.004024f2
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov esi, dword [esp + 0x40]
test esi, esi
jle 0x4010fe
mov dword [esp + 0x4c4], edi
xor ebx, ebx
mov edi, dword [esp + ebx*4 + 0x44]
push 2
push 0x438cd0
push edi
call fcn.0041c6c9
add esp, 0xc
add ebx, 1
test eax, eax
je 0x42d455
push 0x438cd4
push edi
call fcn.0041c84b
add esp, 8
mov dword [esp + ebx*4 + 0x8c], eax
test eax, eax
je 0x42d42e
cmp ebx, esi
jl 0x4010b7
mov edi, dword [esp + 0x4c4]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0xc], 6
test ebx, ebx
mov eax, 0xffffffff
lea ecx, [esp + 0x90]
mov edx, esi
je 0x401121
mov eax, 0
mov dword [esp + 0x10], eax
lea eax, [esp + 0xc0]
call fcn.00402514
test eax, eax
jne 0x42d408
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x42d3f2
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x42d3c0
mov eax, dword [esp + 0x48c]
test eax, eax
jle 0x401199
call fcn.0041c54e
mov ebx, eax
add ebx, 0x40
push ebx
push str.input_format:
call fcn.0041c85e
add esp, 8
mov eax, dword [esp + 0x40]
cmp eax, 1
jle 0x40118b
push ebx
push 0x438ce8
call fcn.0041c85e
add esp, 8
lea eax, [esp + 0xc0]
mov edx, ebx
call fcn.004028e4
mov eax, dword [esp + 0x494]
test eax, eax
jl 0x4011df
mov eax, dword [eax*4 + 0x4379c0]
mov esi, dword [esp + 0x3a0]
cmp eax, esi
je 0x42d379
lea edx, [esi - 1]
cmp eax, edx
jne 0x42d26e
mov eax, dword [esp + 0x498]
test eax, eax
jl section..text1
cmp eax, 1
jne 0x42d47c
jmp 0x401222
mov eax, dword [esp + 0x3a0]
mov edx, dword [esp + 0x498]
test edx, edx
jge 0x42d302
mov edx, dword [esp + 0x3a4]
lea ebx, [esp + 0x498]
mov dword [esp + 0xc], ebx
lea ecx, [esp + 0x494]
call fcn.00404580
test eax, eax
jne 0x42d2dc
mov esi, dword [esp + 0x3a0]
mov eax, dword [esp + 0x3a8]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x4a0], 5
mov dword [esp + 0x490], esi
mov dword [esp + 0x49c], eax
push 2
push 0x438cd0
push ebx
call fcn.0041c6c9
add esp, 0xc
test eax, eax
je 0x42d2b4
push 0x438cec
push ebx
call fcn.0041c84b
add esp, 8
mov dword [esp + 0x4b4], eax
test eax, eax
je 0x42d294
mov eax, dword [esp + 0x48c]
test eax, eax
jle 0x4012e1
call fcn.0041c54e
mov ebx, eax
mov eax, dword [esp + 0x494]
push dword [eax*4 + 0x448100]
add ebx, 0x40
push dword [esp + 0x4a0]
push str.output_format:__d_Hz__s
push ebx
call fcn.0041c9a0
add esp, 0x10
mov eax, dword [esp + 0x498]
test eax, eax
je 0x4012cc
push ebx
push str.__LFE
call fcn.0041c85e
add esp, 8
push ebx
push 0x438d28
call fcn.0041c85e
add esp, 8
mov esi, dword [esp + 0x490]
push 1
push 0xf00
call fcn.0041cc0d
mov ebx, eax
push 4
lea eax, [esi + esi*2]
shl eax, 9
push eax
call fcn.0041cc0d
add esp, 0x10
mov esi, eax
test ebx, ebx
je 0x401877
test esi, esi
je 0x401877
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x401328
mov eax, 0x40482c
mov dword [esp + 0x4d8], eax
jmp 0x40133a
cmp eax, 2
je 0x42d16d
xor eax, eax
mov dword [esp + 0x4d8], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x42d0a9
lea eax, [esp + 0x3c0]
call fcn.004029ec
test eax, eax
jne 0x42d08e
call fcn.0041c54e
lea edx, [esp + 0x464]
add eax, 0x40
mov dword [esp + 0x8c], eax
call fcn.0040421c
push dword [esp + 0x43c]
push str.Threads:__i_n_n
mov eax, dword [esp + 0x94]
push eax
call fcn.0041c9a0
add esp, 0xc
fldz
fst qword [esp + 0xb8]
fld st(0)
fstp dword [esp + 0x4b8]
fstp dword [esp + 0x4c0]
mov dword [esp + 0x4d0], ebx
mov dword [esp + 0x4d4], esi
xor ecx, ecx
mov dword [esp + 0x4ac], ecx
mov dword [esp + 0x4c4], edi
mov dword [esp + 0x4bc], ecx
mov ebx, ecx
mov esi, ecx
mov edx, dword [esp + 0x4d4]
lea eax, [esp + 0xc0]
mov ecx, 0x600
call fcn.00401882
mov edi, eax
mov ecx, dword [esp + 0x4d8]
test ecx, ecx
je 0x401422
push dword [esp + 0x494]
push dword [esp + 0x4a4]
push dword [esp + 0x498]
push edi
mov ecx, dword [esp + 0x4e4]
push ecx
mov ecx, dword [esp + 0x4ec]
call ecx
add esp, 0x14
mov edx, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x4d4]
mov dword [esp + 0xc], edi
lea eax, [esp + 0x3c0]
call fcn.00401c02
mov ecx, eax
test ecx, ecx
jl 0x42d010
jle 0x4016ff
mov edi, dword [esp + 0x48c]
test edi, edi
jle 0x4014de
fild dword [esp + 0x430]
fild dword [esp + 0x438]
mov edx, dword [esp + 0x430]
fld dword [esp + 0x4c0]
fld dword [esp + 0x4b8]
mov eax, dword [esp + 0x438]
fxch st(3)
faddp st(1)
fstp dword [esp + 0x4c0]
faddp st(1)
fstp dword [esp + 0x4b8]
add dword [esp + 0x4bc], ecx
add esi, 0x600
cmp edi, 1
jne 0x42d4a2
mov dword [esp + 0x4cc], ecx
call fcn.0041c4d4
mov ecx, dword [esp + 0x4cc]
mov dword [esp + 0x4c8], eax
mov edi, eax
sub edi, dword [esp + 0x4c4]
cmp edi, 0xc8
jge 0x401501
add ebx, 1
mov edi, dword [esp + 0x4b4]
push edi
push ecx
push 1
mov ecx, dword [esp + 0x4dc]
push ecx
call fcn.0041cd66
add esp, 0x10
jmp 0x4013d3
mov edi, dword [esp + 0x3a8]
mov dword [esp + 0x4c4], edi
mov eax, esi
xor edx, edx
div edi
test ebx, ebx
mov dword [esp + 0x4b0], eax
jle 0x4016d2
mov eax, dword [esp + 0x4ac]
mov edi, dword [esp + 0x4b0]
cmp edi, eax
jbe 0x4016a3
mov edi, dword [esp + 0x398]
mov dword [esp + 0x4ac], edi
mov edi, dword [esp + 0x39c]
mov dword [esp + 0xb4], edi
fld dword [0x438d40]
fld1
mov dword [esp + 0x3b8], esi
fild dword [esp + 0x3b8]
mov edi, esi
shr edi, 0x1f
fadd qword [edi*8 + 0x437bd0]
fmul st(2), st(0)
mov edi, dword [esp + 0x4bc]
mov dword [esp + 0x3b8], edi
fild dword [esp + 0x3b8]
shr edi, 0x1f
fadd qword [edi*8 + 0x437bd0]
fmul dword [0x438d3c]
mov edi, dword [esp + 0x4c4]
mov dword [esp + 0x3b8], edi
fild dword [esp + 0x3b8]
fmulp st(1)
fdivrp st(3)
mov edi, dword [esp + 0xb4]
sub edi, 0
jb 0x4016f6
or edi, dword [esp + 0x4ac]
je 0x4016f6
fmul dword [0x438d44]
mov edi, dword [esp + 0x4ac]
mov dword [esp + 0x3b8], edi
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x3bc], edi
fild qword [esp + 0x3b8]
shr edi, 0x1f
fadd qword [edi*8 + 0x437be0]
fdivp st(1)
fnstcw word [esp + 0x30]
movzx eax, word [esp + 0x30]
or eax, 0xc00
mov dword [esp + 0x38], eax
fldcw word [esp + 0x38]
fistp qword [esp + 0x3b8]
fldcw word [esp + 0x30]
mov eax, dword [esp + 0x3b8]
cmp eax, 0x64
jbe 0x40163c
mov eax, 0x64
test eax, eax
ja 0x401645
mov eax, 0
fld dword [esp + 0x4c0]
mov edi, dword [esp + 0x8c]
fxch st(2)
fstp qword [esp + 0x1c]
add ebx, 1
mov dword [esp + 0x3b8], ebx
fild dword [esp + 0x3b8]
fdivp st(1)
mov dword [esp + 0x4cc], ecx
fmul st(1), st(0)
fmul dword [esp + 0x4b8]
fxch st(1)
fstp qword [esp + 0xc]
fstp qword [esp + 0x14]
mov dword [esp], edi
mov dword [esp + 4], str._rprogress:__3u____q:__4.1f__bw:__2.1f__bitrate:__4.1f_kbps
mov dword [esp + 8], eax
call fcn.0041c9a0
mov ecx, dword [esp + 0x4cc]
jmp 0x4016d5
mov edi, dword [esp + 0x398]
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x4ac], edi
mov dword [esp + 0xb4], eax
sub edi, esi
sbb eax, 0
jb 0x401556
or edi, eax
je 0x401556
add ebx, 1
mov edi, dword [esp + 0x4b0]
mov dword [esp + 0x4ac], edi
mov edi, dword [esp + 0x4c8]
mov dword [esp + 0x4c4], edi
jmp 0x4014e1
fstp st(0)
xor eax, eax
jmp 0x401645
test edi, edi
jg 0x4013d3
test ebx, ebx
je 0x4013d3
fld dword [esp + 0x4c0]
fld dword [esp + 0x4b8]
mov eax, ebx
mov edx, esi
fld qword [esp + 0xb8]
mov ebx, dword [esp + 0x4d0]
mov esi, dword [esp + 0x4d4]
fxch st(2)
mov edi, dword [esp + 0x48c]
test edi, edi
jle 0x40186a
test edx, edx
je 0x40179f
fstp st(2)
fild dword [esp + 0x3a8]
mov ecx, dword [esp + 0x4bc]
mov dword [esp + 0x3b8], ecx
fild dword [esp + 0x3b8]
mov dword [esp + 0x3b8], edx
fild dword [esp + 0x3b8]
shr ecx, 0x1f
fxch st(1)
fadd qword [ecx*8 + 0x437bd0]
fmul dword [0x438d3c]
fmulp st(2)
shr edx, 0x1f
fadd qword [edx*8 + 0x437bd0]
fmul dword [0x438d40]
fdivp st(1)
fxch st(2)
test eax, eax
jg 0x4017a8
mov eax, 1
cmp edi, 1
jne 0x42d17e
fxch st(2)
fstp qword [esp + 0x18]
fld1
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
mov eax, dword [esp + 0x8c]
fdivp st(1)
fmul st(2), st(0)
fmulp st(1)
fxch st(1)
fstp qword [esp + 8]
fstp qword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], str._rprogress:_100____q:__4.1f__bw:__2.1f__bitrate:__4.1f_kbps_n_n
call fcn.0041c9a0
xor edi, edi
test esi, esi
je 0x4017fb
push esi
call fcn.0041cdf3
pop ecx
test ebx, ebx
je 0x401806
push ebx
call fcn.0041cdf3
pop ecx
lea eax, [esp + 0xc0]
call fcn.004042cc
mov esi, dword [esp + 0x40]
test esi, esi
jle 0x401835
xor ebx, ebx
mov eax, dword [esp + ebx*4 + 0x90]
add ebx, 1
test eax, eax
je 0x401831
push eax
call fcn.0041cef4
pop ecx
cmp ebx, esi
jl 0x40181c
mov eax, dword [esp + 0x4b4]
test eax, eax
je 0x401847
push eax
call fcn.0041cef4
pop ecx
lea eax, [esp + 0x3c0]
call fcn.0040433a
test eax, eax
jne 0x42d4fa
mov eax, edi
add esp, 0x4f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fstp st(0)
fstp st(0)
fstp st(0)
xor edi, edi
jmp 0x4017f0
mov edi, 1
jmp 0x4017f0
mov dword [esp + 0x498], 1
jmp 0x401222
fld dword [esp + 0x4c0]
fld dword [esp + 0x4b8]
mov eax, ebx
mov edx, esi
fld qword [esp + 0xb8]
mov ebx, dword [esp + 0x4d0]
mov esi, dword [esp + 0x4d4]
push eax
push str.Error_encoding_frame__d_n
mov ecx, dword [esp + 0x94]
push ecx
fxch st(2)
fstp dword [esp + 0x4cc]
fstp dword [esp + 0x4c4]
fstp qword [esp + 0xc4]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
call fcn.0041c9a0
fld qword [esp + 0xc4]
fld dword [esp + 0x4c4]
mov eax, dword [esp + 0x40]
fld dword [esp + 0x4cc]
mov edx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x401738
call fcn.0041c54e
add eax, 0x40
push eax
push str.error_initializing_encoder_n
call fcn.0041c85e
add esp, 8
jmp 0x401877
lea eax, [esp + 0xc0]
mov edx, esi
mov ecx, 0x100
call fcn.00401882
mov dword [esp + 0x4ac], eax
neg eax
mov dword [esp + 0x4bc], eax
lea edx, [eax + 0x100]
test edx, edx
mov dword [esp + 0x8c], edx
jle 0x42d11c
mov eax, dword [esp + 0x490]
imul eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x4ac]
push edx
lea ecx, [esi + eax*4]
push esi
push ecx
call fcn.0041cf70
mov eax, dword [esp + 0x49c]
imul eax, dword [esp + 0x98]
shl eax, 2
push eax
push 0
push esi
call fcn.0042a828
add esp, 0x18
mov eax, dword [esp + 0x4d8]
test eax, eax
je 0x42d161
mov eax, dword [esp + 0x4bc]
push dword [esp + 0x494]
lea ecx, [eax*4 + 0x400]
add ecx, esi
push dword [esp + 0x4a4]
push dword [esp + 0x498]
mov edx, dword [esp + 0x4b8]
push edx
push ecx
mov eax, dword [esp + 0x4ec]
call eax
add esp, 0x14
mov dword [esp + 0x4a4], esi
jmp 0x401346
mov eax, 0x404660
mov dword [esp + 0x4d8], eax
jmp 0x40133a
cmp edi, 2
jne 0x40186a
mov edx, dword [esp + 0x8c]
push edx
push 0x438ce8
fstp dword [esp + 0x4c8]
fstp dword [esp + 0x4c0]
fstp qword [esp + 0xc0]
mov dword [esp + 0x3c], eax
call fcn.0041c85e
fld qword [esp + 0xc0]
fld dword [esp + 0x4c0]
mov eax, dword [esp + 0x3c]
fld dword [esp + 0x4c8]
add esp, 8
fxch st(1)
fstp dword [esp + 0x4b8]
fxch st(1)
fstp qword [esp + 0xb8]
fld1
mov dword [esp + 4], str.average_quality:____4.1f_n
mov dword [esp + 0x3b8], eax
fild dword [esp + 0x3b8]
fdivp st(1)
mov eax, dword [esp + 0x8c]
fmul st(1), st(0)
fstp dword [esp + 0x30]
fstp qword [esp + 8]
mov dword [esp], eax
call fcn.0041c9a0
fld qword [esp + 0xb8]
fld dword [esp + 0x4b8]
fmul dword [esp + 0x30]
mov eax, dword [esp + 0x8c]
fstp qword [esp + 8]
fstp qword [esp + 0xb8]
mov dword [esp + 4], str.average_bandwidth:__2.1f_n
mov dword [esp], eax
call fcn.0041c9a0
fld qword [esp + 0xb8]
mov eax, dword [esp + 0x8c]
fstp qword [esp + 8]
mov dword [esp], eax
mov dword [esp + 4], str.average_bitrate:____4.1f_kbps_n_n
call fcn.0041c9a0
jmp 0x4017ee
call fcn.0041c54e
add eax, 0x40
push eax
push str.acmod_does_not_match_number_of_channels_n
call fcn.0041c85e
add esp, 8
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x4b4], ebx
jmp 0x401877
call fcn.0041c54e
push ebx
push str.error_opening_output_file:__s_n
add eax, 0x40
push eax
call fcn.0041c9a0
add esp, 0xc
xor ebx, ebx
xor esi, esi
jmp 0x401877
call fcn.0041c54e
add eax, 0x20
mov dword [esp + 0x4b4], eax
push eax
call fcn.0041d2d5
push 0x8000
push eax
call fcn.0041d3f2
add esp, 0xc
jmp 0x40127b
call fcn.0041c54e
add eax, 0x40
push eax
push str.mismatch_in_channels__acmod__and_lfe_params_n
call fcn.0041c85e
add esp, 8
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x4b4], ebx
jmp 0x401877
jne 0x42d333
cmp eax, 6
jne 0x4011f5
call fcn.0041c54e
add eax, 0x40
push eax
push str.cannot_encode_6_channels_w_o_LFE_n
call fcn.0041c85e
add esp, 8
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x4b4], ebx
jmp 0x401877
cmp edx, 1
jne 0x42d363
cmp eax, 1
jne 0x42d363
call fcn.0041c54e
add eax, 0x40
push eax
push str.cannot_encode_LFE_channel_only_n
call fcn.0041c85e
add esp, 8
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x4b4], ebx
jmp 0x401877
mov edx, dword [esp + 0x3a4]
or edx, 8
mov dword [esp + 0x3a4], edx
jmp 0x4011fc
mov eax, dword [esp + 0x498]
test eax, eax
jge 0x42d394
mov dword [esp + 0x498], 0
jmp 0x401222
je 0x401222
call fcn.0041c54e
add eax, 0x40
push eax
push str.acmod_and_lfe_do_not_match_number_of_channels_n
call fcn.0041c85e
add esp, 8
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x4b4], ebx
jmp 0x401877
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0xc0]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.00404974
jmp 0x401151
lea eax, [esp + 0xc0]
mov edx, 1
call fcn.00404a1e
jmp 0x401145
call fcn.0041c54e
add eax, 0x40
push eax
push str.invalid_input_file_s__n
call fcn.0041c85e
add esp, 8
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x4b4], ebx
jmp 0x401877
call fcn.0041c54e
push edi
push str.error_opening_input_file:__s_n
add eax, 0x40
push eax
call fcn.0041c9a0
add esp, 0xc
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x4b4], ebx
jmp 0x401877
call fcn.0041c54e
mov edi, eax
push edi
call fcn.0041d2d5
push 0x8000
push eax
call fcn.0041d3f2
add esp, 0xc
mov dword [esp + ebx*4 + 0x8c], edi
jmp 0x4010f3
call fcn.0041c54e
add eax, 0x40
push eax
push str.acmod_and_lfe_do_not_match_number_of_channels_n
call fcn.0041c85e
add esp, 8
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x4b4], ebx
jmp 0x401877
cmp edi, 2
jne 0x4014de
push dword [esp + 0x434]
push eax
push edx
push ebx
push str.frame:__7d__q:__4d__bw:__2d__bitrate:__3d_kbps_n
mov edi, dword [esp + 0xa0]
push edi
mov dword [esp + 0x4e4], ecx
call fcn.0041c9a0
mov ecx, dword [esp + 0x4e4]
add esp, 0x18
jmp 0x4014de
cmp ebx, 1
jne 0x42d50c
call fcn.0041c54e
mov ebx, eax
add ebx, 0x40
mov eax, ebx
call fcn.004024f2
mov eax, ebx
call fcn.00404b1a
mov eax, 1
add esp, 0x4f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
call fcn.0041c54e
mov esi, eax
add esi, 0x20
mov eax, esi
call fcn.004024f2
cmp ebx, 2
jne 0x42d52b
mov eax, esi
call fcn.00404ace
jmp 0x42d537
cmp ebx, 3
jne 0x42d537
mov eax, esi
call fcn.00404a4e
xor eax, eax
add esp, 0x4f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret