Function at 0x14010a350
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x490
mov rax, qword [0x14041f010]
xor rax, rsp
mov qword [rsp + 0x480], rax
mov qword [rsp + 0x48], rdx
lea rbp, [0x1403b051f]
xor edx, edx
mov r15d, 0x7fffffff
mov r14d, r8d
mov r13, rcx
mov edi, edx
mov dword [rsp + 0x20], edx
mov esi, edx
mov qword [rsp + 0x28], rdx
lea rbx, [rdx - 1]
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x34], edx
cmp dword [rcx + 0x10], edx
je 0x14010a4a8
xor r8d, r8d
add rcx, 0x10
test r14d, r14d
je 0x14010a3fe
lea r9d, [rdx + 1]
lea rdx, [rsp + 0x38]
call fcn.1402c1570
mov rsi, rax
cmp dword [r13 + 0x20], edi
je 0x14010a4ad
lea r9d, [rbx + 2]
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [r13 + 0x20]
call fcn.1402c1570
mov rbx, rax
jmp 0x14010a4ad
lea rdx, [0x1404651c0]
call fcn.1402c2ec0
test rax, rax
mov rdx, rbp
cmovne rdx, rax
movzx ecx, byte [rdx]
sub ecx, 0x62
jne 0x14010a429
movzx ecx, byte [rdx + 1]
xor edx, edx
movzx eax, dl
sub ecx, eax
jmp 0x14010a42b
xor edx, edx
mov eax, edx
test ecx, ecx
lea rdx, [0x1404651c0]
sete al
lea rcx, [r13 + 0x10]
xor r8d, r8d
mov dword [rsp + 0x20], eax
call fcn.1402c2ec0
test rax, rax
mov rdx, rbp
cmovne rdx, rax
movzx ecx, byte [rdx]
sub ecx, 0x42
jne 0x14010a466
movzx ecx, byte [rdx + 1]
xor eax, eax
movzx eax, al
sub ecx, eax
test ecx, ecx
mov eax, 1
cmovne eax, r14d
mov r14d, eax
cmp dword [r13 + 0x20], esi
je 0x14010a4a3
mov r9d, 1
lea rdx, [rsp + 0x38]
xor r8d, r8d
lea rcx, [r13 + 0x20]
call fcn.1402c1570
mov r15, rax
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x20], eax
jmp 0x14010a4a8
mov r15, qword [rsp + 0x40]
test r14d, r14d
je 0x14010a503
mov eax, dword [rsp + 0x20]
mov edx, 0x1f
mov dword [rsp + 0x20], eax
lea ecx, [rdx + 1]
call fcn.140032cf0
test rax, rax
je 0x14010ac05
mov r12, qword [rsp + 0x48]
xor ecx, ecx
mov r15, qword [rsp + 0x40]
mov qword [rax + 0x10], rcx
mov qword [rax], rcx
mov dword [rax + 8], 1
mov dword [rax + 0xc], 0x64
mov dword [r12], 8
mov qword [r12 + 8], rax
inc dword [rax + 0x18]
mov qword [rsp + 0x40], r15
jmp 0x14010a518
mov r12, qword [rsp + 0x48]
mov rcx, r12
call fcn.140150b80
test eax, eax
je 0x14010ac05
xor r8d, r8d
lea rdx, [0x1404651c0]
mov rcx, r13
call fcn.1402c2ec0
test rax, rax
cmovne rbp, rax
mov rcx, rbp
call fcn.1401e1020
test eax, eax
je 0x14010a549
lea rcx, str.E17:___s__is_a_directory
jmp 0x14010abf4
cmp byte [rbp], dil
je 0x14010abdd
lea rdx, [0x1403bf360]
mov rcx, rbp
call fcn.1401e07e0
mov qword [rsp + 0x38], rax
mov r13, rax
test rax, rax
je 0x14010abd7
test r14d, r14d
je 0x14010a6a3
mov rdi, qword [r12 + 8]
mov rcx, rax
call fcn.14001d6e0
lea rdx, [rsp + 0x50]
mov ecx, eax
call fcn.14000cf08
test eax, eax
js 0x14010a67e
movsxd rdx, dword [rsp + 0x64]
test rsi, rsi
js 0x14010a5dd
cmp rbx, 0xffffffffffffffff
je 0x14010a5cf
mov rax, rdx
sub rax, rsi
cmp rbx, rax
jle 0x14010a5d5
movzx eax, word [rsp + 0x56]
mov ecx, 0xf000
and ax, cx
mov ecx, 0x2000
cmp ax, cx
je 0x14010a5d5
mov rbx, rdx
sub rbx, rsi
xor r14d, r14d
mov r8d, r14d
jmp 0x14010a621
mov rax, rsi
neg rax
cmp rax, rdx
jle 0x14010a604
movzx eax, word [rsp + 0x56]
mov ecx, 0xf000
and ax, cx
mov ecx, 0x2000
cmp ax, cx
je 0x14010a604
neg edx
movsxd rsi, edx
mov rax, rsi
neg rax
cmp rbx, 0xffffffffffffffff
je 0x14010a615
cmp rbx, rax
jle 0x14010a618
mov rbx, rax
mov r8d, 2
xor r14d, r14d
test rbx, rbx
jle 0x14010a696
test rsi, rsi
je 0x14010a63a
mov rdx, rsi
mov rcx, r13
call fcn.14000c094
test eax, eax
jne 0x14010a696
mov eax, dword [rdi + 4]
sub eax, dword [rdi]
cmp eax, ebx
jge 0x14010a651
mov edx, ebx
mov rcx, rdi
call fcn.1400326e0
test eax, eax
je 0x14010a67e
mov rcx, qword [rdi + 0x10]
mov r9, r13
movsxd r8, ebx
mov edx, 1
mov dword [rdi], ebx
call fcn.14000bd5c
movsxd rcx, dword [rdi]
cmp rax, rcx
jae 0x14010a696
mov rcx, qword [r12 + 8]
call fcn.14003f280
mov qword [r12 + 8], r14
lea rcx, str.E485:_Cant_read_file__s
call qword [case.0x1400407ae.0]
mov rcx, rax
mov rdx, rbp
call fcn.1401860c0
mov rcx, r13
call fcn.140013970
jmp 0x14010ac05
mov rbx, rdi
mov r14d, edi
jmp 0x14010a6b5
mov rbx, qword [rsp + 0x28]
cmp r14d, r15d
jl 0x14010a6c3
test r15d, r15d
jns 0x14010aacb
mov r9, r13
lea rcx, [rsp + 0x80]
mov edx, 1
mov r8d, 0x400
call fcn.14000bd5c
mov r13, rax
lea rsi, [rsp + 0x80]
lea r12, [rsp + 0x80]
movsxd rdx, r13d
lea rcx, [rsp + 0x80]
add rcx, rdx
cmp rsi, rcx
jb 0x14010a771
test r13d, r13d
jg 0x14010a719
test edi, edi
jg 0x14010a8b0
mov ecx, dword [rsp + 0x20]
test ecx, ecx
jne 0x14010a775
mov rbp, qword [rsp + 0x28]
cmp r14d, r15d
jl 0x14010a72c
test r15d, r15d
jns 0x14010aacb
test r13d, r13d
jle 0x14010aaf5
mov r13, qword [rsp + 0x38]
cmp r12, rsi
jae 0x14010a6b0
movsxd r13, dword [rsp + 0x30]
movsxd r14, edi
mov rcx, r14
sub rcx, r12
add rcx, rsi
cmp rcx, r13
jl 0x14010aa6e
test r13d, r13d
jne 0x14010aa2c
mov r13d, esi
sub r13d, r12d
jmp 0x14010aa4c
mov ecx, dword [rsp + 0x20]
test r13d, r13d
jle 0x14010a8b0
movzx eax, byte [rsi]
cmp al, 0xa
je 0x14010a8b0
test al, al
jne 0x14010a79d
mov rbx, qword [rsp + 0x28]
mov byte [rsi], 0xa
inc rsi
jmp 0x14010a6f1
cmp al, 0xbf
jne 0x14010aa1f
cmp dword [0x14045b550], 0
je 0x14010aa1f
test ecx, ecx
jne 0x14010aa1f
lea rax, [rsp + 0x81]
cmp rsi, rax
jb 0x14010a7cd
movzx ecx, byte [rsi - 1]
jmp 0x14010a7de
cmp edi, 1
jl 0x14010a7dc
movsxd rax, edi
movzx ecx, byte [rax + rbx - 1]
jmp 0x14010a7de
xor cl, cl
lea rax, [rsp + 0x82]
cmp rsi, rax
jb 0x14010a7f1
movzx eax, byte [rsi - 2]
jmp 0x14010a81e
lea rax, [rsp + 0x81]
cmp rsi, rax
jne 0x14010a80d
cmp edi, 1
jl 0x14010a80d
movsxd rax, edi
movzx eax, byte [rax + rbx - 1]
jmp 0x14010a81e
cmp edi, 2
jl 0x14010aa1f
movsxd rax, edi
movzx eax, byte [rax + rbx - 2]
cmp al, 0xef
jne 0x14010aa1f
cmp cl, 0xbb
jne 0x14010aa1f
lea rbx, [rsi - 2]
cmp r12, rbx
jne 0x14010a849
mov rbx, qword [rsp + 0x28]
lea r12, [rsi + 1]
inc rsi
jmp 0x14010a6f1
xor eax, eax
mov ebp, eax
lea rax, [rsp + 0x80]
cmp rbx, rax
jae 0x14010a86c
lea rbp, [rsp + 0x80]
sub ebp, ebx
lea rbx, [rsp + 0x80]
lea rcx, [rsp + 0x80]
mov rax, rsi
sub rax, rcx
inc rax
cmp rdx, rax
jle 0x14010a896
sub rdx, rsi
mov rcx, rbx
lea r8, [rsp + rdx + 0x7f]
lea rdx, [rsi + 1]
call fcn.140003740
add r13d, 0xfffffffd
lea rsi, [rbx - 1]
mov rbx, qword [rsp + 0x28]
add r13d, ebp
sub edi, ebp
inc rsi
jmp 0x14010a6f1
mov rbx, rsi
sub rbx, r12
test r13d, r13d
jle 0x14010a903
cmp dword [rsp + 0x20], 0
jne 0x14010a903
test rbx, rbx
je 0x14010a8de
lea rax, [r12 - 1]
add rax, rbx
nop
cmp byte [rax], 0xd
jne 0x14010a903
dec rax
sub rbx, 1
jne 0x14010a8d0
mov rbp, qword [rsp + 0x28]
movsxd rax, edi
test edi, edi
jle 0x14010a90a
nop word [rax + rax]
cmp byte [rax + rbp - 1], 0xd
jne 0x14010a908
dec edi
dec rax
test rax, rax
jg 0x14010a8f0
jmp 0x14010a908
mov rbp, qword [rsp + 0x28]
test edi, edi
jne 0x14010a93e
lea rcx, [rbx + 1]
mov edx, 1
call fcn.140032b90
mov r14, rax
test rax, rax
je 0x14010ab8b
mov r8, rbx
mov rdx, r12
mov rcx, rax
call fcn.140013650
xor r12d, r12d
mov byte [r14 + rbx], 0
jmp 0x14010a98b
mov rcx, qword [rsp + 0x28]
movsxd r15, edi
lea rbp, [r15 + rbx]
lea rdx, [rbp + 1]
call fcn.140005658
mov r14, rax
test rax, rax
je 0x14010ab8b
lea rcx, [r15 + rax]
mov r8, rbx
mov rdx, r12
call fcn.140003740
mov r15, qword [rsp + 0x40]
xor r12d, r12d
mov byte [r14 + rbp], 0
mov edi, r12d
mov ebp, r12d
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x30], r12d
mov edx, 1
lea ecx, [rdx + 0x1f]
call fcn.140032b90
mov rbx, rax
test rax, rax
je 0x14010ab71
mov dword [rax + 0x10], 7
mov byte [rax + 0x14], 0
mov qword [rax + 0x18], r14
mov rax, qword [rsp + 0x48]
mov r14, qword [rax + 8]
lea rax, [0x14046a2e0]
cmp qword [r14], rax
jne 0x14010a9d0
mov rcx, r14
call fcn.1400c09d0
mov rax, qword [r14 + 0x10]
test rax, rax
jne 0x14010a9e1
mov qword [r14], rbx
mov rax, r12
jmp 0x14010a9e8
mov qword [rax], rbx
mov rax, qword [r14 + 0x10]
mov qword [rbx + 8], rax
inc dword [r14 + 0x4c]
mov qword [r14 + 0x10], rbx
mov r14d, dword [rsp + 0x34]
inc r14d
mov qword [rbx], r12
mov dword [rsp + 0x34], r14d
lea r12, [rsi + 1]
cmp r14d, r15d
jl 0x14010aa16
test r15d, r15d
jns 0x14010a71e
test r13d, r13d
jle 0x14010a71e
mov rbx, qword [rsp + 0x28]
inc rsi
jmp 0x14010a6f1
lea eax, [r13*2]
mov ecx, esi
add eax, r13d
sub ecx, r12d
cdq
sub eax, edx
sar eax, 1
lea r13d, [rdi + rcx*2]
cmp eax, r13d
cmovg r13d, eax
movsxd rbx, r13d
mov rcx, rbp
mov rdx, rbx
mov dword [rsp + 0x30], r13d
call fcn.140005658
test rax, rax
je 0x14010aa99
mov rbx, rax
mov qword [rsp + 0x28], rax
jmp 0x14010aa73
mov rbx, qword [rsp + 0x28]
mov r8, rsi
lea rcx, [r14 + rbx]
sub r8, r12
mov rdx, r12
call fcn.140003740
mov r14d, dword [rsp + 0x34]
sub esi, r12d
mov r13, qword [rsp + 0x38]
add edi, esi
jmp 0x14010a6b5
mov rcx, rbx
call fcn.140032ad0
cmp dword [0x14045b64c], 0
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rdi + 8]
jne 0x14010aac3
mov rcx, rbx
call fcn.14014d370
mov rcx, rbx
call fcn.14014d310
mov rcx, rdi
call fcn.140150b80
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x14010aae6
cmp dword [0x14045b3f8], 0
jne 0x14010aae6
mov rcx, rax
call fcn.140005660
mov rcx, qword [rsp + 0x38]
call fcn.140013970
jmp 0x14010ac05
test r15d, r15d
jns 0x14010aacb
neg r15d
cmp r14d, r15d
jle 0x14010aacb
sub r14d, r15d
mov esi, r14d
nop dword [rax + rax]
mov rax, qword [rsp + 0x48]
mov rdi, qword [rax + 8]
mov rcx, rdi
mov rbx, qword [rdi]
mov r8, rbx
mov rdx, rbx
call fcn.14014c6f0
lea rcx, [rbx + 0x10]
call fcn.1402c4e50
movsxd rax, dword [rdi + 0x50]
test eax, eax
je 0x14010ab50
cmp rbx, rdi
jb 0x14010ab50
add rax, 3
shl rax, 5
add rax, rdi
cmp rbx, rax
jb 0x14010ab66
test rbx, rbx
je 0x14010ab66
cmp dword [0x14045b3f8], 0
jne 0x14010ab66
mov rcx, rbx
call fcn.140005660
sub rsi, 1
jne 0x14010ab10
jmp 0x14010aacb
cmp dword [0x14045b3f8], 0
jne 0x14010aaa1
mov rcx, r14
call fcn.140005660
jmp 0x14010aaa1
cmp dword [0x14045b3fc], 0
jne 0x14010aaa1
xor eax, eax
mov dword [0x14045b3fc], 1
mov dword [0x14045b404], eax
lea rcx, str.E342:_Out_of_memory____allocating__lu_bytes_
movsxd rax, edi
add rbx, rax
call qword [case.0x1400407ae.0]
mov rcx, rax
lea rdx, [rbx + 1]
call fcn.1401860c0
cmp dword [0x1404207c0], 2
je 0x14010ac30
jmp 0x14010aaa1
cmp byte [rbp], dil
jne 0x14010abed
lea rcx, [0x1403bf368]
call qword [case.0x1400407ae.0]
mov rbp, rax
lea rcx, str.E484:_Cant_open_file__s
call qword [case.0x1400407ae.0]
mov rcx, rax
mov rdx, rbp
call fcn.1401860c0
mov rcx, qword [rsp + 0x480]
xor rcx, rsp
call fcn.140001200
mov rbx, qword [rsp + 0x4e0]
add rsp, 0x490
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x7b
call fcn.1401e1440
int3