Function at 0x14000407e
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rax, qword [0x14014f3d0]
cmp dword [rax + 0x1750], 0
mov qword [rsp + 0x30], rcx
mov r14d, edx
mov r13d, r8d
je 0x1400040cb
mov ecx, 2
call qword [str.___a_]
mov r8, qword [rsp + 0x30]
lea rdx, str.Reading_specs_from__s_n
mov rcx, rax
call fcn.14002371c
mov rcx, qword [rsp + 0x30]
xor r8d, r8d
xor edx, edx
call sub.msvcrt.dll__open_1
mov edi, eax
test eax, eax
jns 0x1400040f1
mov r8, qword [rsp + 0x30]
lea rdx, str.cannot_read_spec_file__qs:__m
jmp 0x14000440f
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x48]
call qword [sym.imp.msvcrt.dll__stat64]
test eax, eax
js 0x1400040e0
mov rax, qword [rsp + 0x60]
lea rcx, [rax + 1]
call fcn.1400644b3
mov r8d, dword [rsp + 0x60]
mov ecx, edi
mov rdx, rax
mov rsi, rax
call sub.msvcrt.dll__read_1
mov ebx, eax
test eax, eax
js 0x1400040e0
cdqe
mov ecx, edi
mov byte [rsi + rax], 0
call sub.msvcrt.dll__close_1
lea ecx, [rbx + 1]
movsxd rcx, ecx
call fcn.1400644b3
mov rbx, rax
mov rdx, rax
mov rax, rsi
mov cl, byte [rax]
test cl, cl
je 0x140004174
cmp cl, 0xd
jne 0x14000416a
cmp rsi, rax
jae 0x140004162
cmp byte [rax - 1], 0xa
je 0x14000416f
cmp byte [rax + 1], 0xa
je 0x14000416f
mov cl, 0xa
mov byte [rdx], cl
inc rdx
inc rax
jmp 0x14000414c
mov byte [rdx], 0
mov rcx, rsi
mov rbp, rbx
call fcn.140074210
movzx eax, r13b
mov dword [rsp + 0x38], eax
mov rcx, rbp
call fcn.140001360
mov rsi, rax
mov al, byte [rax]
test al, al
je 0x140004642
cmp al, 0x25
jne 0x1400044e0
test r14b, r14b
jne 0x1400044e0
mov rbp, rsi
mov al, byte [rbp]
mov r15, rbp
inc rbp
cmp al, 0xa
je 0x1400041c4
test al, al
jne 0x1400041b3
lea rdx, [0x1400898e4]
mov rcx, rsi
call fcn.14007ab70
test al, al
je 0x1400041e2
mov al, byte [rsi + 8]
cmp al, 9
je 0x1400041f7
cmp al, 0x20
je 0x1400041f7
lea rdx, str._include_noerr
mov rcx, rsi
call fcn.14007ab70
test al, al
jne 0x140004251
jmp 0x14000425c
add rsi, 9
mov al, byte [rsi]
inc rsi
cmp al, 0x20
je 0x1400041fb
cmp al, 9
je 0x1400041fb
cmp al, 0x3c
jne 0x1400042c4
cmp byte [r15 - 1], 0x3e
jne 0x1400042c4
mov byte [r15 - 1], 0
mov rdx, rsi
mov r8d, 4
lea rcx, [0x1400878b0]
mov r9d, 1
call fcn.140002025
mov r8d, dword [rsp + 0x38]
test rax, rax
cmovne rsi, rax
xor edx, edx
mov rcx, rsi
jmp 0x1400042d7
mov al, byte [rsi + 0xe]
cmp al, 9
je 0x140004278
cmp al, 0x20
je 0x140004278
lea rdx, str._rename
mov rcx, rsi
call fcn.14007ab70
test al, al
jne 0x140004317
jmp 0x140004322
add rsi, 0xf
mov al, byte [rsi]
inc rsi
cmp al, 0x20
je 0x14000427c
cmp al, 9
je 0x14000427c
cmp al, 0x3c
jne 0x1400042c4
cmp byte [r15 - 1], 0x3e
jne 0x1400042c4
mov byte [r15 - 1], 0
lea rcx, [0x1400878b0]
mov r9d, 1
mov rdx, rsi
mov r8d, 4
call fcn.140002025
mov rcx, rax
test rax, rax
je 0x1400042e1
movzx r8d, r13b
xor edx, edx
jmp 0x1400042d7
sub rsi, rbx
lea rdx, str.specs___include_syntax_malformed_after__ld_characters
lea r8d, [rsi + 1]
jmp 0x140004689
call fcn.14000407e
jmp 0x14000418a
mov rax, qword [0x14014f3d0]
cmp dword [rax + 0x1750], 0
je 0x14000418a
mov ecx, 2
call qword [str.___a_]
mov r8, rsi
lea rdx, str.could_not_find_specs_file__s_n
mov rcx, rax
call fcn.14002371c
jmp 0x14000418a
mov al, byte [rsi + 7]
cmp al, 0x20
je 0x140004334
cmp al, 9
je 0x140004334
mov r8d, esi
lea rdx, str.specs_unknown____command_after__ld_characters
sub r8d, ebx
jmp 0x140004689
lea rdi, [rsi + 8]
movzx eax, byte [rdi]
cmp al, 0x20
jne 0x140004344
inc rdi
jmp 0x140004338
cmp al, 9
je 0x14000433f
mov rdx, qword [0x14014f310]
test byte [rdx + rax*2], 0x88
jne 0x14000435a
mov r8d, edi
jmp 0x1400043c1
mov r8, rdi
mov al, byte [r8]
test al, al
je 0x1400043c1
movzx ecx, al
lea rsi, [r8 + 1]
test byte [rdx + rcx*2], 0x40
jne 0x140004376
mov r8, rsi
jmp 0x14000435d
cmp al, 9
je 0x14000437e
cmp al, 0x20
jne 0x1400043c1
mov eax, r8d
mov byte [r8], 0
sub eax, edi
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsi]
cmp al, 9
jne 0x140004397
inc rsi
jmp 0x14000438b
cmp al, 0x20
je 0x140004392
test byte [rdx + rax*2], 0x88
jne 0x1400043a6
mov r8d, esi
jmp 0x1400043c1
mov r8, rsi
movzx eax, byte [r8]
test al, al
je 0x1400043bc
test byte [rdx + rax*2], 0x40
jne 0x1400043bc
inc r8
jmp 0x1400043a9
cmp r15, r8
je 0x1400043d0
sub r8d, ebx
lea rdx, str.specs___rename_syntax_malformed_after__ld_characters
jmp 0x140004689
mov byte [r15], 0
mov r15, qword [0x1401631d8]
mov r12, r15
test r12, r12
je 0x140004405
mov eax, dword [rsp + 0x3c]
cmp dword [r12 + 0x20], eax
jne 0x1400043fe
mov rcx, qword [r12]
mov rdx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x14000441d
mov r12, qword [r12 + 0x18]
jmp 0x1400043de
mov r8, rdi
lea rdx, str.specs__s_spec_was_not_found_to_be_renamed
mov rax, qword [0x14014f410]
mov ecx, dword [rax]
call fcn.1400256ad
mov rdx, rsi
mov rcx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x14000418a
test r15, r15
je 0x14000446c
mov rcx, qword [r15]
mov rdx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140004466
mov rax, qword [0x14014f410]
mov r8, qword [rsp + 0x30]
mov qword [rsp + 0x20], rsi
mov r9, rdi
lea rdx, str._s:_attempt_to_rename_spec__qs_to_already_defined_spec__qs
mov ecx, dword [rax]
call fcn.1400256ad
mov r15, qword [r15 + 0x18]
jmp 0x140004430
mov rax, qword [0x14014f3d0]
cmp dword [rax + 0x1750], 0
je 0x14000449c
mov ecx, 2
call qword [str.___a_]
mov r9, rsi
mov r8, rdi
lea rdx, str.rename_spec__s_to__s_n
mov rcx, rax
call fcn.14002371c
mov rax, qword [r12 + 0x10]
mov r8d, dword [rsp + 0x38]
mov rcx, rsi
mov rdx, qword [rax]
call fcn.1400022d8
cmp byte [r12 + 0x25], 0
je 0x1400044c6
mov rax, qword [r12 + 0x10]
mov rcx, qword [rax]
call fcn.140074210
mov rax, qword [r12 + 0x10]
lea rdi, [0x140089052]
mov qword [rax], rdi
mov byte [r12 + 0x25], 0
jmp 0x14000418a
mov rdi, rsi
mov al, byte [rdi]
test al, al
je 0x14000467c
cmp al, 0x3a
je 0x1400044fe
cmp al, 0xa
je 0x14000467c
inc rdi
jmp 0x1400044e3
mov rdx, rdi
cmp rbx, rdx
jae 0x140004516
mov al, byte [rdx - 1]
cmp al, 9
jne 0x140004512
dec rdx
jmp 0x140004501
cmp al, 0x20
je 0x14000450d
sub edx, esi
mov rcx, rsi
call fcn.1400016f1
lea rcx, [rdi + 1]
mov r15, rax
call fcn.140001360
cmp byte [rax + 1], 0
mov rcx, rax
jne 0x14000453d
mov r8d, eax
jmp 0x14000467f
mov rbp, rax
mov al, byte [rbp]
test al, al
je 0x14000455b
cmp al, 0xa
je 0x140004550
inc rbp
jmp 0x140004540
mov al, byte [rbp + 1]
cmp al, 0xa
je 0x14000455b
test al, al
jne 0x14000454b
mov edx, ebp
sub edx, ecx
call fcn.1400016f1
mov rsi, rax
mov rdx, rax
mov cl, byte [rax]
test cl, cl
je 0x1400045a0
cmp cl, 0x5c
jne 0x140004581
cmp byte [rax + 1], 0xa
jne 0x140004596
add rax, 2
jmp 0x14000456a
cmp cl, 0x23
jne 0x140004596
mov cl, byte [rax]
test cl, cl
je 0x14000456a
cmp cl, 0xa
je 0x14000456a
inc rax
jmp 0x140004586
mov byte [rdx], cl
inc rax
inc rdx
jmp 0x14000456a
mov byte [rdx], 0
cmp byte [r15], 0x2a
jne 0x1400045d7
lea rdx, str.link_command
mov rcx, r15
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x140004636
mov r8d, dword [rsp + 0x38]
lea rcx, [r15 + 1]
mov rdx, rsi
call fcn.1400022d8
mov rcx, rsi
call fcn.140074210
jmp 0x14000462c
mov eax, dword [0x140163230]
mov rcx, qword [0x140163238]
lea edx, [rax + 2]
movsxd rdx, edx
shl rdx, 5
call fcn.140064525
movsxd rdx, dword [0x140163230]
mov qword [0x140163238], rax
mov rcx, rdx
shl rdx, 5
lea r8, [rax + rdx]
inc ecx
lea rdx, [rax + rdx + 0x20]
xor eax, eax
mov dword [0x140163230], ecx
mov rdi, rdx
mov ecx, 8
mov qword [r8], r15
mov qword [r8 + 8], rsi
rep stosd dword [rdi], eax
cmp byte [r15], 0
jne 0x14000418a
mov qword [str.__fsyntax_only:__c:__M:__MM:__E:__S:______linker____fno_use_linker_plugin:__fno_lto:______plugin___linker_plugin_file_______plugin_opt__lto_wrapper_______plugin_opt_fresolution_u.res__________flinker_output:_plugin_opt_linker_output_known_______nostdlib:__nodefaultlibs:_:pass_through_libs___link_gcc_c_sequence________fltoflto:__fcompare_debug______flto__fno_lto__flto__l__staticsharedr:_pie:_pie__fuse_ld:_fuse_ld____gz:_e_gz_is_not_supported_in_this_configuration__X__o__e__N__n__r_____s__t__u__z__Z___nostdlib:__r:__nostartfiles:_S______staticno_piestatic_pie:___L___mfwrap____link_libgcc___fvtable_verifynone:__fvtable_verifystd:____e_fvtable_verifystd_is_not_supported_in_this_configuration__fvtable_verifypreinit:____e_fvtable_verifypreinit_is_not_supported_in_this_configuration___nostdlib:__r:__nodefaultlibs:__:sanitize_address_:_______:sanitize_hwaddress_:_______:sanitize_thread_:_______:sanitize_leak_:__o_______fopenaccfopenmp_:gt__ftree_parallelize_loops:__1_:_t_:include_libgomp.spec___link_gomp______fgnu_tm:_:include_libitm.spec___link_itm_______mflib____fsplit_stack:___wrappthread_create_____fprofile_arcsfprofile_generatecoverage:_lgcov___nostdlib:__r:__nodefaultlibs:__:sanitize_address_:_static_libasan:_Bstatic__lasan__static_libasan:_Bdynamic__static_libasanstatic:_:include_libsanitizer.spec___link_libasan______static:_ecannot_specify__static_with__fsanitizeaddress______:sanitize_hwaddress_:_static_libhwasan:_Bstatic__lhwasan__static_libhwasan:_Bdynamic__static_libhwasanstatic:_:include_libsanitizer.spec___link_libhwasan__t_static:_ecannot_specify__static_with__fsanitizehwaddress______:sanitize_thread_:_static_libtsan:_Bstatic__ltsan__static_libtsan:_Bdynamic__static_libtsanstatic:_:include_libsanitizer.spec___link_libtsan______static:_ecannot_specify__static_with__fsanitizethread______:sanitize_undefined_:_static_libubsan:_Bstatic__lubsan__static_libubsan:_Bdynamic__static_libubsanstatic:_:include_libsanitizer.spec___link_libubsan_______:sanitize_leak_:_static_liblsan:_Bstatic__llsan__static_liblsan:_Bdynamic__static_liblsanstatic:_:include_libsanitizer.spec___link_liblsan________nostdlib:__r:__nodefaultlibs:__link_ssp____link_gcc_c_sequence_______nostdlib:__r:__nostartfiles:_E__T___n__post_link__], rsi
jmp 0x14000418a
cmp qword [str.__fsyntax_only:__c:__M:__MM:__E:__S:______linker____fno_use_linker_plugin:__fno_lto:______plugin___linker_plugin_file_______plugin_opt__lto_wrapper_______plugin_opt_fresolution_u.res__________flinker_output:_plugin_opt_linker_output_known_______nostdlib:__nodefaultlibs:_:pass_through_libs___link_gcc_c_sequence________fltoflto:__fcompare_debug______flto__fno_lto__flto__l__staticsharedr:_pie:_pie__fuse_ld:_fuse_ld____gz:_e_gz_is_not_supported_in_this_configuration__X__o__e__N__n__r_____s__t__u__z__Z___nostdlib:__r:__nostartfiles:_S______staticno_piestatic_pie:___L___mfwrap____link_libgcc___fvtable_verifynone:__fvtable_verifystd:____e_fvtable_verifystd_is_not_supported_in_this_configuration__fvtable_verifypreinit:____e_fvtable_verifypreinit_is_not_supported_in_this_configuration___nostdlib:__r:__nodefaultlibs:__:sanitize_address_:_______:sanitize_hwaddress_:_______:sanitize_thread_:_______:sanitize_leak_:__o_______fopenaccfopenmp_:gt__ftree_parallelize_loops:__1_:_t_:include_libgomp.spec___link_gomp______fgnu_tm:_:include_libitm.spec___link_itm_______mflib____fsplit_stack:___wrappthread_create_____fprofile_arcsfprofile_generatecoverage:_lgcov___nostdlib:__r:__nodefaultlibs:__:sanitize_address_:_static_libasan:_Bstatic__lasan__static_libasan:_Bdynamic__static_libasanstatic:_:include_libsanitizer.spec___link_libasan______static:_ecannot_specify__static_with__fsanitizeaddress______:sanitize_hwaddress_:_static_libhwasan:_Bstatic__lhwasan__static_libhwasan:_Bdynamic__static_libhwasanstatic:_:include_libsanitizer.spec___link_libhwasan__t_static:_ecannot_specify__static_with__fsanitizehwaddress______:sanitize_thread_:_static_libtsan:_Bstatic__ltsan__static_libtsan:_Bdynamic__static_libtsanstatic:_:include_libsanitizer.spec___link_libtsan______static:_ecannot_specify__static_with__fsanitizethread______:sanitize_undefined_:_static_libubsan:_Bstatic__lubsan__static_libubsan:_Bdynamic__static_libubsanstatic:_:include_libsanitizer.spec___link_libubsan_______:sanitize_leak_:_static_liblsan:_Bstatic__llsan__static_liblsan:_Bdynamic__static_liblsanstatic:_:include_libsanitizer.spec___link_liblsan________nostdlib:__r:__nodefaultlibs:__link_ssp____link_gcc_c_sequence_______nostdlib:__r:__nostartfiles:_E__T___n__post_link__], 0
jne 0x140004661
mov rax, qword [0x14014f410]
lea rdx, str.spec_file_has_no_spec_for_linking
mov ecx, dword [rax]
call fcn.1400256ad
mov rcx, rbx
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140074210
mov r8d, edi
sub r8d, ebx
lea rdx, str.specs_file_malformed_after__ld_characters
mov rax, qword [0x14014f410]
mov ecx, dword [rax]
call fcn.1400256ad
nop
push rbx
sub rsp, 0x20
dec ecx
mov rbx, rdx
je 0x1400046bc
lea r8, str.include_spec_function
mov edx, 0x28db
lea rcx, str._gcc_13.2.0_gcc_gcc.cc
call fcn.140085ed0
mov rdx, qword [rdx]
lea rcx, [0x1400878b0]
mov r9d, 1
mov r8d, 4
call fcn.140002025
mov rcx, rax
test rax, rax
jne 0x1400046e2
mov rcx, qword [rbx]
xor r8d, r8d
xor edx, edx
call fcn.14000407e
xor eax, eax
add rsp, 0x20
pop rbx
ret