Function at 0x402d20
Capabilities:
Read file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x70
mov r8d, 9
lea rbx, [rsp + 0x30]
mov rdi, rdx
lea rdx, str.__1_9__0_9_0__.__1_9__0_9_0___
mov rsi, rcx
mov rcx, rbx
call fcn.0045a750
test eax, eax
jne 0x402ca6
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0
mov rdx, rsi
mov rcx, rbx
call fcn.0045a8c0
cmp eax, 1
je 0x402d06
test eax, eax
jne 0x402cee
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0
mov rdx, rdi
mov rcx, rbx
call fcn.0045a8c0
cmp eax, 1
je 0x402cd6
test eax, eax
jne 0x402cbe
mov rdx, rdi
mov rcx, rsi
call fcn.0046b2a0
add rsp, 0x70
pop rbx
pop rsi
pop rdi
ret
lea r8, str.compare_version_strings
lea rcx, str._builds_idf_crosstool_NG_.build_HOST_x86_64_w64_mingw32_xtensa_esp32s3_elf_src_gcc_gcc_gcc.c
mov edx, 0x250e
call fcn.00487f40
lea r8, str.compare_version_strings
lea rcx, str._builds_idf_crosstool_NG_.build_HOST_x86_64_w64_mingw32_xtensa_esp32s3_elf_src_gcc_gcc_gcc.c
mov edx, 0x2518
call fcn.00487f40
mov rax, qword [0x004e1d60]
lea rdx, str.invalid_version_number__qs
mov r8, rdi
mov ecx, dword [rax]
call fcn.004246b0
lea r8, str.compare_version_strings
lea rcx, str._builds_idf_crosstool_NG_.build_HOST_x86_64_w64_mingw32_xtensa_esp32s3_elf_src_gcc_gcc_gcc.c
mov edx, 0x2513
call fcn.00487f40
mov rax, qword [0x004e1d60]
lea rdx, str.invalid_version_number__qs
mov r8, rsi
mov ecx, dword [rax]
call fcn.004246b0
nop
nop
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
cmp ecx, 2
mov r13, rdx
jle 0x402fb8
mov r8, qword [rdx]
movsx ebx, byte [r8]
test bl, bl
je 0x402fa0
movzx r9d, byte [r8 + 1]
mov eax, r9d
and eax, 0xfffffffd
cmp al, 0x3c
jne 0x402ee1
cmp bl, 0x21
mov eax, 5
mov dword [rsp + 0x30], 2
je 0x402ee1
cmp ecx, eax
jne 0x402f8b
movsxd rax, dword [rsp + 0x30]
mov byte [rsp + 0x37], r9b
mov qword [rsp + 0x28], r8
lea r15, [rax*8 + 8]
lea rbp, [r13 + r15]
mov rdx, qword [rbp]
mov rcx, rdx
mov qword [rsp + 0x38], rdx
call sub.msvcrt.dll_strlen
mov edi, dword [0x004ee164]
mov rsi, rax
mov r8, qword [rsp + 0x28]
movsx r9d, byte [rsp + 0x37]
test edi, edi
jle 0x402f75
mov r14, qword [0x004ee168]
xor ebx, ebx
xor r12d, r12d
mov rdx, qword [rsp + 0x38]
jmp 0x402def
add ebx, 1
add r14, 0x18
cmp edi, ebx
je 0x402e1d
mov rdx, qword [rbp]
mov rcx, qword [r14]
mov r8, rsi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x402de0
mov edx, esi
mov ecx, ebx
call fcn.00401940
test eax, eax
je 0x402de0
add ebx, 1
mov r12, rsi
add r14, 0x18
add r12, qword [r14 - 0x18]
cmp edi, ebx
jne 0x402deb
test r12, r12
je 0x402ef3
mov rdx, qword [r13 + 8]
mov rcx, r12
call fcn.00402c20
cmp dword [rsp + 0x30], 2
mov esi, eax
je 0x402f57
mov r8, qword [r13]
mov eax, 0xffffffff
movsx ebx, byte [r8]
movsx r9d, byte [r8 + 1]
shl ebx, 8
or ebx, r9d
cmp ebx, 0x3c00
je 0x402f19
jle 0x402ea0
cmp ebx, 0x3e3c
je 0x402f20
cmp ebx, 0x3e3d
je 0x402f40
cmp ebx, 0x3c3e
je 0x402f2c
mov rax, qword [0x004e1d60]
lea rdx, str.unknown_operator__qs_in___:version_compare
mov ecx, dword [rax]
call fcn.004246b0
nop
cmp ebx, 0x213c
je 0x402f50
cmp ebx, 0x213e
jne 0x402e89
mov eax, esi
shr eax, 0x1f
test r12, r12
sete sil
or esi, eax
test sil, sil
je 0x402f84
mov rax, qword [r13 + r15 + 8]
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 4
mov dword [rsp + 0x30], 1
jmp 0x402d74
mov r8, qword [r13]
mov eax, 0xffffffff
mov esi, eax
movsx ebx, byte [r8]
movsx r9d, byte [r8 + 1]
shl ebx, 8
or ebx, r9d
cmp ebx, 0x3c00
jne 0x402e63
shr esi, 0x1f
jmp 0x402ec2
not esi
shr eax, 0x1f
shr esi, 0x1f
and esi, eax
jmp 0x402ec2
not eax
shr esi, 0x1f
shr eax, 0x1f
or esi, eax
jmp 0x402ec2
not esi
shr esi, 0x1f
jmp 0x402ec2
not esi
jmp 0x402eb4
mov rdx, qword [r13 + 0x10]
mov rcx, r12
call fcn.00402c20
mov r8, qword [r13]
movsx ebx, byte [r8]
movsx r9d, byte [r8 + 1]
jmp 0x402e51
mov eax, 0xffffffff
xor r12d, r12d
mov esi, eax
jmp 0x402e51
xor eax, eax
jmp 0x402ed0
mov rax, qword [0x004e1d60]
lea rdx, str.too_many_arguments_to___:version_compare
mov ecx, dword [rax]
call fcn.004246b0
lea r8, str.version_compare_spec_function
lea rcx, str._builds_idf_crosstool_NG_.build_HOST_x86_64_w64_mingw32_xtensa_esp32s3_elf_src_gcc_gcc_gcc.c
mov edx, 0x2543
call fcn.00487f40
mov rax, qword [0x004e1d60]
lea rdx, str.too_few_arguments_to___:version_compare
mov ecx, dword [rax]
call fcn.004246b0
nop
nop