Function at 0x401aac
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x140
mov rax, qword [0x00407100]
xor rax, rsp
mov qword [rsp + 0x130], rax
and qword [0x00408e40], 0
and qword [0x00408e60], 0
cmp ecx, 2
mov rsi, rdx
mov ebx, ecx
mov r13d, ecx
mov qword [0x00407a00], rdx
mov dword [0x00407a10], ecx
jl 0x401d6e
mov rcx, qword [sym.imp.msvcrt.dll__iob]
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 4]
add rcx, 0x30
call qword [sym.imp.msvcrt.dll_setvbuf]
mov rcx, qword [sym.imp.msvcrt.dll__iob]
xor r9d, r9d
lea r8d, [r9 + 4]
xor edx, edx
add rcx, 0x60
call qword [sym.imp.msvcrt.dll_setvbuf]
mov r14d, 1
sub ebx, r14d
je 0x401d1e
lea ecx, [r14 + 7]
add rsi, rcx
mov rdi, qword [rsi]
cmp byte [rdi], 0x2f
je 0x401d06
cmp byte [rdi], 0x2d
je 0x401d06
xor eax, eax
cmp dword [0x00407a0c], eax
cmove eax, ecx
cmp dword [0x0040740c], 0
mov dword [0x00408e68], eax
je 0x401b87
or eax, 2
mov dword [0x00408e68], eax
cmp dword [0x00407a14], 0
je 0x401b99
or eax, r14d
mov dword [0x00408e68], eax
cmp dword [0x00407a28], 0
je 0x401bab
or eax, 4
mov dword [0x00408e68], eax
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp byte [rdi], 0x40
mov dword [0x00407a18], eax
jne 0x401c0a
add rdi, r14
lea rdx, [0x00401564]
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_fopen]
test rax, rax
mov rbp, rax
je 0x401d22
mov rcx, rax
jmp 0x401bf2
cmp eax, 0xffffffff
je 0x401c12
lea rcx, [rsp + 0x20]
call fcn.00401dcc
mov rcx, rbp
lea r8, [rsp + 0x20]
lea rdx, [0x00401584]
call qword [sym.imp.msvcrt.dll_fscanf]
test eax, eax
jne 0x401be0
jmp 0x401c12
mov rcx, rdi
call fcn.00401dcc
mov ecx, 8
jmp 0x401d15
movsx r12d, bpl
mov ecx, r12d
call qword [sym.imp.msvcrt.dll_toupper]
sub eax, 0x3f
je 0x401d6e
sub eax, 4
je 0x401cfa
sub eax, 0xc
je 0x401cf1
sub eax, r14d
je 0x401cd4
sub eax, 3
je 0x401cb7
sub eax, 2
je 0x401cae
sub eax, r14d
je 0x401ca5
sub eax, 2
je 0x401c76
cmp eax, r14d
jne 0x401d52
mov dword [0x00407a28], r14d
jmp 0x401d01
sub ebx, r14d
je 0x401db7
movsxd rdx, dword [0x004079d0]
mov ecx, r13d
lea r8, [0x00407a40]
sub ecx, ebx
add rsi, 8
mov dword [r8 + rdx*4], ecx
add edx, r14d
mov dword [0x004079d0], edx
jmp 0x401d01
mov dword [0x00407a2c], r14d
jmp 0x401d01
and dword [0x0040740c], 0
jmp 0x401d01
sub ebx, r14d
je 0x401db7
mov ecx, 8
add rsi, rcx
mov rax, qword [rsi]
mov qword [0x00407a20], rax
jmp 0x401d06
sub ebx, r14d
je 0x401db7
mov ecx, 8
add rsi, rcx
mov rax, qword [rsi]
mov qword [0x00408e40], rax
jmp 0x401d06
mov dword [0x00407a14], r14d
jmp 0x401d01
mov dword [0x00407a0c], r14d
mov ecx, 8
add rdi, r14
mov bpl, byte [rdi]
test bpl, bpl
jne 0x401c1c
sub ebx, r14d
jne 0x401b4c
xor eax, eax
jmp 0x401d8b
call qword [sym.imp.msvcrt.dll__errno]
mov rcx, qword [sym.imp.msvcrt.dll__iob]
lea rdx, [0x00401568]
mov r9d, dword [rax]
add rcx, 0x60
mov r8, rdi
call qword [sym.imp.msvcrt.dll_fprintf]
mov ecx, 0x63
call qword [sym.imp.KERNEL32.dll_ExitProcess]
movsx r8d, bpl
lea rdx, [0x00401378]
mov rcx, qword [sym.imp.msvcrt.dll__iob]
add rcx, 0x60
call qword [sym.imp.msvcrt.dll_fprintf]
mov rdx, qword [sym.imp.msvcrt.dll__iob]
lea rcx, [0x004013a0]
add rdx, 0x60
call qword [sym.imp.msvcrt.dll_fputs]
mov eax, 0x63
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.004051c0
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
mov r8d, r12d
lea rdx, [0x00401350]
jmp 0x401d5d