Function at 0x1004060f0
Capabilities:
Terminate process
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov qword [0x100453138], 0
movsxd rax, r8d
mov rsi, rdx
mov dword [rsp + 0x34], r8d
lea rdx, [rdx + rax*8]
mov dword [rsp + 0x90], ecx
mov qword [0x100453120], rdx
cmp r8d, ecx
jl 0x100406152
jmp 0x100406164
mov eax, dword [rsp + 0x34]
add qword [0x100453118], 1
lea r8d, [rax + 1]
mov dword [rsp + 0x34], r8d
cmp r8d, dword [rsp + 0x90]
jge 0x100406164
movsxd rax, r8d
mov rcx, qword [rsi + rax*8]
mov edx, 1
call fcn.1004076e0
test al, al
je 0x100406130
lea rdi, [0x100435341]
mov rcx, rdi
call fcn.10040d6f0
lea rcx, [0x100435343]
mov rbx, rax
call fcn.10040d6f0
lea rcx, [0x100435345]
mov r13, rax
call fcn.10040d6f0
mov r12, rax
test rbx, rbx
je 0x10040676a
test r13, r13
je 0x10040674b
test rax, rax
je 0x10040672c
lea r8, [rsp + 0x90]
mov rdx, rsi
mov rcx, rbx
call fcn.10040b770
mov r8, qword [0x100453128]
mov r9, qword [0x100453138]
mov rcx, rsi
mov edx, dword [rsp + 0x90]
mov qword [r8 + 8], rdi
mov byte [r9 + 0x28], 1
call fcn.10040d6d0
mov rcx, qword [0x100453128]
call fcn.1004038c0
movsxd rax, dword [rsp + 0x34]
mov edx, dword [rsp + 0x90]
cmp eax, edx
jge 0x100406308
mov rdi, qword [0x10044c4a0]
lea rbp, [rsp + 0x34]
jmp 0x100406264
mov rcx, qword [0x100453128]
xor eax, eax
mov qword [rcx + 8], r15
cmp dword [rsp + 0x34], r14d
je 0x10040623b
movsxd r10, r14d
mov rax, qword [rsi + r10*8]
mov qword [rcx + 0x30], rax
call fcn.1004038c0
mov rcx, qword [0x100453138]
call fcn.1004038c0
movsxd rax, dword [rsp + 0x34]
mov edx, dword [rsp + 0x90]
cmp eax, edx
jge 0x100406308
mov rcx, qword [rsi + rax*8]
xor edx, edx
mov byte [rdi + 0x38], 0
call fcn.1004076e0
test al, al
movsxd rax, dword [rsp + 0x34]
je 0x1004066a3
mov r15, qword [rsi + rax*8]
mov rcx, r15
call fcn.10040d6f0
mov rbx, rax
test rax, rax
je 0x1004066e0
cmp dword [rax], 4
mov r14d, dword [rsp + 0x34]
je 0x1004062ab
add r14d, 1
mov dword [rsp + 0x34], r14d
mov r8, rbp
mov rdx, rsi
mov rcx, rbx
call qword [rbx + 0x10]
test al, al
jne 0x100406220
movsxd rdx, dword [rsp + 0x34]
mov rsi, qword [rsi + rdx*8]
test rsi, rsi
je 0x100406714
cmp dword [rbx], 4
jne 0x1004062df
cmp edx, r14d
je 0x1004064c0
lea rcx, str.invalid_argument___s_to___s
call sub.msys_intl_8.dll_libintl_gettext
mov qword [rsp + 0x20], r15
mov r9, rsi
xor edx, edx
mov r8, rax
mov ecx, 1
call sub.msys_2.0.dll_error
nop word [rax + rax]
mov r9, qword [0x100453138]
mov r8, qword [0x100453128]
mov rcx, rsi
call fcn.10040d6e0
mov rax, qword [0x100453138]
mov rcx, qword [rax + 0x108]
test rcx, rcx
je 0x100406551
call fcn.1004076b0
test al, al
je 0x100406449
lea r8, [rsp + 0x90]
mov rdx, rsi
mov rcx, r13
call fcn.10040b610
mov rcx, qword [0x100453128]
lea rax, [0x100435343]
mov qword [rcx + 8], rax
mov byte [rcx + 0x28], 1
call fcn.1004038c0
lea r8, [rsp + 0x90]
mov rdx, rsi
mov rcx, r12
call fcn.10040aa80
mov rcx, qword [0x100453128]
lea rax, str._print
mov qword [rcx + 8], rax
mov byte [rcx + 0x28], 1
call fcn.1004038c0
mov rcx, qword [0x100453138]
call fcn.1004038c0
mov rsi, qword [0x10044c2e0]
test byte [rsi + 0x40], 9
jne 0x100406483
mov rcx, qword [0x100453138]
call fcn.10040d5c0
mov rcx, qword [0x100453138]
call fcn.1004038c0
lea rcx, [rsp + 0x38]
xor r8d, r8d
xor edx, edx
mov rax, qword [0x100453138]
mov qword [rsp + 0x38], rax
call fcn.1004042b0
mov rcx, rax
mov qword [0x100453130], rax
mov rbx, rax
call fcn.100404d10
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x1004064de
lea rdx, [0x1004026e0]
cmp qword [rax], rdx
je 0x100406720
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x1004065af
lea rcx, str.unexpected_extra_predicate__s
call sub.msys_intl_8.dll_libintl_gettext
mov r9, rbx
xor edx, edx
mov ecx, 1
mov r8, rax
call sub.msys_2.0.dll_error
mov rax, qword [0x100453138]
mov rcx, qword [rax + 0x108]
mov qword [rsp + 0x38], rax
mov qword [0x100453138], rcx
call fcn.1004038c0
mov rcx, qword [rsp + 0x38]
call fcn.100410780
mov rsi, qword [0x10044c2e0]
test byte [rsi + 0x40], 9
je 0x1004063bb
call sub.msys_2.0.dll___getreent
mov r8d, 0x10
mov edx, 1
lea rcx, str.Predicate_List:_n
mov r9, qword [rax + 0x18]
call fcn.100431b00
mov rbx, qword [0x100453138]
call sub.msys_2.0.dll___getreent
mov rcx, qword [rax + 0x18]
mov rdx, rbx
call fcn.100403770
jmp 0x1004063bb
lea rcx, str.invalid_predicate___s
call sub.msys_intl_8.dll_libintl_gettext
mov r9, r15
xor edx, edx
mov ecx, 1
mov r8, rax
call sub.msys_2.0.dll_error
test byte [rsi + 0x40], 9
jne 0x1004065ca
mov rcx, rbx
call fcn.100404660
lea rcx, [0x100453130]
call fcn.1004058b0
mov rbx, qword [0x100453130]
mov edx, 1
mov rcx, rbx
call fcn.100404220
cmp word [rsi + 0x68], 1
jbe 0x100406526
mov rcx, rbx
call fcn.100405e10
mov rbx, qword [0x100453130]
mov edx, 1
mov rcx, rbx
call fcn.100404220
test byte [rsi + 0x40], 9
jne 0x100406611
mov rax, rbx
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rax
mov qword [rsp + 0x38], rax
mov qword [0x100453128], 0
mov qword [0x100453138], 0
call fcn.100410780
lea r8, [rsp + 0x90]
mov rdx, rsi
mov rcx, r12
call fcn.10040aa80
mov rcx, qword [0x100453128]
lea rax, str._print
mov qword [rcx + 8], rax
call fcn.1004038c0
mov rcx, qword [0x100453138]
call fcn.1004038c0
jmp 0x1004063aa
lea rcx, str.unexpected_extra_predicate
call sub.msys_intl_8.dll_libintl_gettext
xor edx, edx
mov ecx, 1
mov r8, rax
call sub.msys_2.0.dll_error
call sub.msys_2.0.dll___getreent
mov r8d, 0xb
mov edx, 1
lea rcx, str.Eval_Tree:_n
mov r9, qword [rax + 0x18]
call fcn.100431b00
mov rbx, qword [0x100453130]
call sub.msys_2.0.dll___getreent
xor r8d, r8d
mov rcx, qword [rax + 0x18]
mov rdx, rbx
call fcn.100405230
mov rbx, qword [0x100453130]
jmp 0x1004064e8
call sub.msys_2.0.dll___getreent
mov r8d, 0x15
mov edx, 1
lea rcx, str.Optimized_Eval_Tree:_n
mov r9, qword [rax + 0x18]
call fcn.100431b00
mov rbx, qword [0x100453130]
call sub.msys_2.0.dll___getreent
xor r8d, r8d
mov rcx, qword [rax + 0x18]
mov rdx, rbx
call fcn.100405230
call sub.msys_2.0.dll___getreent
mov r8d, 0x18
mov edx, 1
lea rcx, str.Optimized_command_line:_n
mov r9, qword [rax + 0x18]
call fcn.100431b00
mov rbx, qword [0x100453130]
call sub.msys_2.0.dll___getreent
mov rcx, qword [rax + 0x18]
mov rdx, rbx
call fcn.100403830
call sub.msys_2.0.dll___getreent
mov ecx, 0xa
mov rdx, qword [rax + 0x18]
call sub.msys_2.0.dll_fputc
mov rbx, qword [0x100453130]
jmp 0x10040653d
mov rbx, qword [rsi + rax*8]
lea rcx, str.paths_must_precede_expression:___s
call sub.msys_intl_8.dll_libintl_gettext
xor edx, edx
xor ecx, ecx
mov r8, rax
mov r9, rbx
call sub.msys_2.0.dll_error
movsxd rax, dword [rsp + 0x34]
xor edx, edx
mov rcx, qword [rsi + rax*8]
call sub.msys_2.0.dll_access
test eax, eax
je 0x1004066ec
mov ecx, 1
call sub.msys_2.0.dll_exit
lea rcx, str.unknown_predicate___s
jmp 0x1004064c7
mov rax, qword [0x100453128]
lea rcx, str.possible_unquoted_pattern_after_predicate___s_
mov rbx, qword [rax + 8]
call sub.msys_intl_8.dll_libintl_gettext
xor edx, edx
xor ecx, ecx
mov r8, rax
mov r9, rbx
call sub.msys_2.0.dll_error
jmp 0x1004066d6
lea rcx, str.missing_argument_to___s
jmp 0x1004064c7
lea rcx, str.you_have_too_many__
jmp 0x1004065b6
lea r9, str.entry_print___NULL
lea r8, str.build_expression_tree
mov edx, 0x4fa
lea rcx, str.tree.c
call sub.msys_2.0.dll___assert_func
lea r9, str.entry_close___NULL
lea r8, str.build_expression_tree
mov edx, 0x4f9
lea rcx, str.tree.c
call sub.msys_2.0.dll___assert_func
lea r9, str.entry_open___NULL
lea r8, str.build_expression_tree
mov edx, 0x4f8
lea rcx, str.tree.c
call sub.msys_2.0.dll___assert_func
nop
nop
nop
nop
nop
nop
nop
lea rax, [0x1004091f0]
lea r8, [0x100402b20]
mov rdx, qword [rcx]
cmp rdx, rax
sete al
cmp rdx, r8
sete r8b
or eax, r8d
lea r8, [0x100402ac0]
cmp rdx, r8
sete r8b
or al, r8b
jne 0x1004067d0
lea rax, [0x100402b50]
cmp rdx, rax
jne 0x1004067d8
mov qword [rcx + 0x40], 0
ret