Function at 0x14002d950
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x198
mov ebp, ecx
mov rdi, rdx
lea r13, [rsp + 0x70]
call fcn.14001e870
mov rax, qword [0x140031b78]
movq xmm0, qword [0x140031b80]
mov rcx, r13
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xa0], rax
movabs rax, 0x8000001000000
mov qword [rsp + 0xa8], rax
mov rax, qword [0x140031b80]
movups xmmword [rsp + 0xb8], xmm0
movddup xmm0, qword [0x140031b80]
mov qword [rsp + 0xd8], rax
movups xmmword [rsp + 0xc8], xmm0
call fcn.14000d4a0
cmp ebp, 1
jle 0x14002db1d
lea rbx, str.__help
mov rcx, qword [rdi + 8]
mov rdx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x14002da3d
lea rcx, str.sgetool___CLI_tool_for_generating_SGE_sound_banks._nUsage:_n_sgetool__Options__Sounds.dls_Sounds.sf2__MMLSong.txt_Song.mid_..._
call sub.msvcrt.dll_puts
mov rcx, qword [rdi + 8]
mov rdx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x14002db2e
lea rcx, str.Use__sgetool___help__for_detailed_help_information.
call sub.msvcrt.dll_puts
mov ebx, 1
mov eax, ebx
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 1
mov r14, qword [fcn.14002d1e0]
lea rsi, [rsp + 0xa0]
call r14
lea rdx, [rdi + 8]
xor r9d, r9d
lea r8d, [rbp - 1]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov qword [rsp + 0x38], rsi
call fcn.14001ac50
mov r12d, eax
test eax, eax
js 0x14002db4b
lea eax, [rax + 1]
cmp ebp, eax
je 0x14002db3f
cdqe
lea rdx, [0x140031925]
lea rbx, [rdi + rax*8]
mov rcx, qword [rbx]
call sub.msvcrt.dll_fopen
mov rsi, rax
test rax, rax
je 0x14002db61
xor edx, edx
xor r8d, r8d
mov rcx, rax
mov dword [rsp + 0xe0], edx
mov edx, 8
call sub.msvcrt.dll_fseek
lea rax, [rsp + 0xe0]
mov r9, rsi
mov r8d, 1
mov edx, 4
mov rcx, rax
mov qword [rsp + 0x48], rax
call sub.msvcrt.dll_fread
mov rcx, rsi
call sub.msvcrt.dll_rewind
mov eax, dword [rsp + 0xe0]
cmp eax, 0x20534c44
je 0x14002db72
cmp eax, 0x6b626673
je 0x14002db53
lea rcx, str.ERROR:_Unknown_sound_bank_format._n
call fcn.14000d450
or ebx, 0xffffffff
mov rcx, rsi
call sub.msvcrt.dll_fclose
jmp 0x14002da27
lea rcx, str.sgetool___CLI_tool_for_generating_SGE_sound_banks._nUsage:_n_sgetool__Options__Sounds.dls_Sounds.sf2__MMLSong.txt_Song.mid_..._
call sub.msvcrt.dll_puts
jmp 0x14002da16
lea rcx, str.Supported_input_waveform_formats:_n_PCM8__PCM16__PCM24__PCM32__FLOAT32_n_Bit_depths_higher_than_16_bit_will_be_internally_converted_to_16_bit._nOptions:_n_Global_Options_n________________n__o:SoundBank.sge_____Set_output_file._n_Waveform_Options_n__________________n__wavgain:0.0dB_______Set_the_global_waveform_gain._This_will_modify_the_sample_n______________________data_directly__rather_than_adjust_the_waveform_volume._n______________________Can_be_any_decibel_value_between__100.0dB_and_100.0dB__n______________________or_any_linear_scale_between_0.00001_and_100000.0._n__wavgainadj:0.0dB____Similar_to_the___wavgain__option__but_this_will_adjust_n______________________the_waveform_volume_parameter_rather_than_modify_the_data_n______________________directly._The_same_parameters_apply__but_note_that_the_n______________________final_waveform_gain_will_clamp_between__42.1dB_.._6.0dB._n______________________This_option_and___wavgain__can_be_combined._n__wavformat:default___Set_the_sample_format_for_all_waveforms._Can_be_any_of:_n_______________________default_n________________________Do_not_alter_the_format_of_any_waveform._n_______________________PCM8_n________________________Unsigned_8_bit_PCM._n_______________________PCM16_n________________________Signed_16_bit_PCM._n_______________________ADPCM_n________________________4_bit_custom_ADPCM_format._n______________________The_Gameboy_Advance_version_of_this_sound_driver_can_only_n______________________play_back_PCM8_and_ADPCM_waveforms._All_other_platforms_n______________________can_use_any_of_the_listed_formats._n__minloopsize:0_______Set_the_minimum_size_in_samples_for_loops._This_is_mostly_n______________________useful_for_platforms_such_as_Gameboy_Advance_and_Nintendo_n______________________DS__where_short_loops_can_potentially_cause_performance_n______________________penalties_._This_option_will_repeat_a_loop_until_it_is_at_n______________________least_this_number_of_samples_in_length._n__forcemono:never_____Force_all_waveforms_to_become_monophonic._This_uses_a_DFT_n______________________based_algorithm_rather_than_directly_averaging_the_data._n______________________Can_be_any_of:_n_______________________never_n________________________Never_force_conversion._Note_that_if_a_waveform_uses_n________________________more_than_two_channels__these_will_be_converted_to_mono_n________________________regardless_of_this_option._n_______________________always_n________________________Always_convert_to_monophonic._n__monoconv_blk:256____Set_DFT_window_size_of_mono_conversion_algorithm._Can_be_n______________________anywhere_from_8_samples__4_frequency_lines__through_65536_n______________________samples__32768_frequency_lines___must_be_a_power_of_2._n__monoconv_wnd:sine___Set_DFT_window_type_for_mono_conversion._Can_be_any_of:_n_______________________sine______Sine_window______minimum_2_hops__n_______________________hann______Hann_window______minimum_4_hops__n_______________________hamming___Hamming_window___minimum_4_hops__n_______________________blackman__Blackman_window__minimum_8_hops__n_______________________nuttall___Nuttall_window___minimum_8_hops__n__monoconv_hops:8_____Set_number_of_STFT_hops_for_mono_conversion_analysis._The_n______________________maximum_number_of_hops_is_limited_by_the_block_size__but_n______________________the_minimum_number_of_hops_depends_on_the_window_type._n__resample:none_______Resample_all_waveforms_to_target_sample_rate._Can_be_any_n______________________rate_between_5000Hz_through_to_384kHz__or__none__to_avoid_n______________________any_resampling._n__resampleif:always___Condition_for_which_to_use_resampling._Can_be_any_of:_n_______________________never_n________________________Generate_an_error_if_a_waveform_needs_resampling._n_______________________always_n________________________Always_resample._n_______________________gt_n________________________Only_resample_if_target_rate_is_higher._n_______________________lt_n________________________Only_resample_if_target_rate_is_lower._n__lowpass:none________Set_low_pass_filter_cut_off_fre
call sub.msvcrt.dll_puts
jmp 0x14002da22
lea rcx, str.ERROR:_No_sound_bank_file_specified.
call sub.msvcrt.dll_puts
or ebx, 0xffffffff
jmp 0x14002da27
lea rcx, str.ERROR:_Unimplemented__SoundFont_files_._n
call fcn.14000d450
jmp 0x14002db0d
mov rdx, qword [rbx]
lea rcx, str.ERROR:_Unable_to_open_sound_bank_file___s_._n
call fcn.14000d450
jmp 0x14002db4b
mov rdx, qword [rbx]
lea rcx, str.Parsing_DLS_file___s_...
call fcn.14000d450
mov r8, qword [rsp + 0x38]
mov rdx, rsi
mov rcx, r13
call fcn.14000d6a0
test eax, eax
jne 0x14002dd54
lea rcx, [0x14003196f]
add r12d, 2
call sub.msvcrt.dll_puts
mov qword [rsp + 0x50], rsi
movsxd rax, r12d
mov r15, qword [rsp + 0x48]
mov dword [rsp + 0x1e0], ebp
mov qword [rsp + 0x1e8], rdi
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x58], r14
mov r14, rax
cmp dword [rsp + 0x1e0], r14d
jle 0x14002dd68
mov rax, qword [rsp + 0x1e8]
cmp dword [rsp + 0x78], 0xfffe
mov rbx, qword [rax + r14*8]
ja 0x14002dde4
lea rdx, [0x140031925]
mov rcx, rbx
call sub.msvcrt.dll_fopen
mov r12, rax
test rax, rax
je 0x14002de02
xor eax, eax
lea rcx, [rsp + 0x68]
mov r9, r12
mov r8d, 1
mov edx, 4
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x6c], eax
call sub.msvcrt.dll_fread
lea rcx, [rsp + 0x6c]
mov r9, r12
mov r8d, 1
mov edx, 4
call sub.msvcrt.dll_fread
mov rcx, r12
call sub.msvcrt.dll_rewind
cmp dword [rsp + 0x68], 0x6468544d
jne 0x14002dc6c
cmp dword [rsp + 0x6c], 6
je 0x14002de4f
mov rdx, rbx
lea rcx, str.Parsing_MML_song___s_...
call fcn.14000d450
mov rcx, qword [rsp + 0x40]
mov r8, r15
mov rdx, r12
call fcn.14000fc40
mov ebx, eax
test eax, eax
jne 0x14002de1d
mov edx, dword [rsp + 0x180]
test edx, edx
je 0x14002dd43
lea rcx, str.Compiled_with__d_warnings._n
call fcn.14000d450
mov rcx, r15
call fcn.140011070
mov ebp, dword [rsp + 0x150]
test ebp, ebp
je 0x14002dd1c
xor esi, esi
xor ebp, ebp
lea r13, str._Track__2u:__4u_bytes
jmp 0x14002dcec
lea rcx, str.___s__n
call fcn.14000d450
add ebp, dword [rdi + 8]
add rsi, 0x10
cmp ebx, dword [rsp + 0x150]
jae 0x14002dd1c
mov rdi, qword [rsp + 0x158]
add ebx, 1
mov rcx, r13
mov edx, ebx
add rdi, rsi
mov r8d, dword [rdi + 8]
call fcn.14000d450
mov rdx, qword [rdi]
test rdx, rdx
jne 0x14002dcd0
mov ecx, 0xa
call sub.msvcrt.dll_putchar
jmp 0x14002dcdc
mov edx, ebp
lea rcx, str._Total:__u_bytes_n
add r14, 1
call fcn.14000d450
mov rcx, r15
call fcn.14000ff80
mov rcx, r12
call sub.msvcrt.dll_fclose
jmp 0x14002dbd2
lea rcx, [0x14003196f]
call sub.msvcrt.dll_puts
jmp 0x14002dcb8
mov ecx, eax
call fcn.140015ce0
mov rcx, rax
call sub.msvcrt.dll_puts
jmp 0x14002db0d
lea rbx, str.SoundBank.sge
mov rsi, qword [rsp + 0x50]
mov r13, qword [rsp + 0x40]
lea rdx, [0x140031abd]
mov rcx, rbx
mov r14, qword [rsp + 0x58]
call sub.msvcrt.dll_fopen
mov rdi, rax
test rax, rax
je 0x14002de9e
mov ecx, 1
call r14
mov r9, qword [rsp + 0x38]
mov r8, rsi
mov rdx, rdi
mov qword [rsp + 0x20], rax
mov rcx, r13
call fcn.14000e680
mov ebx, eax
test eax, eax
jne 0x14002de87
lea rcx, [0x14003196f]
call sub.msvcrt.dll_puts
mov rcx, rdi
call sub.msvcrt.dll_fclose
mov rcx, r13
call fcn.14000d4c0
jmp 0x14002db10
mov rdx, rbx
mov rsi, qword [rsp + 0x50]
mov r13, qword [rsp + 0x40]
lea rcx, str.ERROR:_Too_many_songs_added___s_._n
call fcn.14000d450
or ebx, 0xffffffff
jmp 0x14002ddd7
mov rdx, rbx
mov rsi, qword [rsp + 0x50]
mov r13, qword [rsp + 0x40]
lea rcx, str.ERROR:_Unable_to_open_song_file___s_._n
call fcn.14000d450
jmp 0x14002ddfd
mov rsi, qword [rsp + 0x50]
mov r13, qword [rsp + 0x40]
cmp eax, 0xfffffff6
je 0x14002de6f
mov ecx, eax
call fcn.14000d5f0
mov rcx, rax
call sub.msvcrt.dll_puts
mov rcx, qword [rsp + 0x48]
call fcn.14000ff80
mov rcx, r12
call sub.msvcrt.dll_fclose
jmp 0x14002ddfd
lea rcx, str.ERROR:_Unimplemented__MIDI_files_._n
mov rsi, qword [rsp + 0x50]
mov r13, qword [rsp + 0x40]
call fcn.14000d450
mov rcx, r12
call sub.msvcrt.dll_fclose
jmp 0x14002ddfd
lea rcx, str.Error_parsing_MML._n
call sub.msvcrt.dll_puts
mov rcx, qword [rsp + 0x48]
call fcn.140010fa0
jmp 0x14002de3b
mov ecx, eax
or ebx, 0xffffffff
call fcn.14000d5f0
mov rcx, rax
call sub.msvcrt.dll_puts
jmp 0x14002ddcf
mov rdx, rbx
lea rcx, str.ERROR:_Unable_to_open_output_file___s__n
call fcn.14000d450
jmp 0x14002ddfd