Function at 0x1400ad070
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
push r14
sub rsp, 0x78
mov rax, qword [0x1401b5030]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov r14, r9
mov qword [rsp + 0x20], rdx
mov r13, r8
mov rbx, rcx
mov rdi, 0xffffffffffffffff
inc rdi
cmp byte [rcx + rdi], 0
jne 0x1400ad0a2
movzx ebp, byte [rcx]
mov eax, 0x2d
xor r12d, r12d
sub ebp, eax
jne 0x1400ad0c4
movzx ebp, byte [rcx + 1]
movzx eax, r12b
sub ebp, eax
cmp rbx, qword [0x1402bf8a8]
jne 0x1400ad116
test rdx, rdx
je 0x1400ad0da
mov eax, dword [0x1402c1524]
mov dword [rdx], eax
test r13, r13
je 0x1400ad0e6
mov dword [r8], 0xfffffffe
test r14, r14
je 0x1400ad10b
mov rax, qword [0x1402c1530]
mov qword [r9 + 0x10], rax
mov rax, qword [0x1402c1530]
mov qword [r9 + 8], rax
mov rax, qword [0x1402c1530]
mov qword [r9], rax
mov eax, dword [0x1402c1528]
jmp 0x1400ad31a
lea ecx, [rdi + 1]
mov qword [rsp + 0x70], rsi
call fcn.14012d1e8
mov rsi, rax
test rax, rax
je 0x1400ad335
mov rcx, rax
mov qword [rsp + 0x68], r15
sub rcx, rbx
nop word [rax + rax]
movzx eax, byte [rbx]
mov byte [rcx + rbx], al
lea rbx, [rbx + 1]
test al, al
jne 0x1400ad140
movzx ecx, byte [rsi]
mov r15, rsi
mov rbx, r12
test cl, cl
je 0x1400ad18b
nop dword [rax + rax]
cmp cl, 0x2f
mov rax, r15
cmovne rax, rbx
mov rbx, rax
call fcn.1401342e8
movsxd rdx, eax
mov rcx, r15
call fcn.1401340ec
movsxd rcx, eax
add r15, rcx
movzx ecx, byte [r15]
test cl, cl
jne 0x1400ad160
mov r15, qword [rsp + 0x68]
lea rcx, [rsi - 1]
mov eax, edi
add rcx, rax
cmp rbx, rcx
jne 0x1400ad1a5
lea eax, [rdi - 1]
mov byte [rax + rsi], r12b
test ebp, ebp
jne 0x1400ad20c
xor ecx, ecx
call fcn.14012d310
mov rcx, rax
call fcn.140131e28
lea rdx, [rsp + 0x28]
mov ecx, eax
call fcn.1401307b8
test eax, eax
jne 0x1400ad347
lea rcx, [rsp + 0x48]
call fcn.14012a5f8
mov rbx, qword [rsp + 0x20]
test rbx, rbx
je 0x1400ad243
test ebp, ebp
je 0x1400ad232
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x1400ad22c
mov rcx, qword [0x14030bec8]
lea rdx, str.zip_diagnostic:_GetFileAttributes_failed_n
call fcn.1400698b0
mov eax, 0x20
jmp 0x1400ad22f
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.1400ab100
test eax, eax
je 0x1400ad1d6
mov rcx, rsi
call fcn.140122088
xor eax, eax
jmp 0x1400ad315
and eax, 0x37
mov r12d, eax
movzx ecx, word [rsp + 0x2e]
mov eax, ecx
shl eax, 0x10
or eax, r12d
mov dword [rbx], eax
jmp 0x1400ad248
movzx ecx, word [rsp + 0x2e]
test r13, r13
je 0x1400ad26d
mov eax, 0xf000
and cx, ax
mov eax, 0x8000
cmp cx, ax
mov rax, 0xffffffffffffffff
cmove eax, dword [rsp + 0x3c]
mov dword [r13], eax
test r14, r14
je 0x1400ad28c
mov rax, qword [rsp + 0x40]
mov qword [r14], rax
mov rax, qword [rsp + 0x48]
mov qword [r14 + 8], rax
mov rax, qword [rsp + 0x50]
mov qword [r14 + 0x10], rax
mov rcx, rsi
call fcn.140122088
mov ecx, dword [rsp + 0x48]
mov ebx, 0xfffffffe
inc ecx
and rcx, rbx
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x20]
call fcn.14012f4a8
mov rdx, rax
test rax, rax
jne 0x1400ad2d7
xor ecx, ecx
call fcn.14012a5f8
inc eax
lea rcx, [rsp + 0x20]
and rax, rbx
mov qword [rsp + 0x20], rax
call fcn.14012f4a8
mov rdx, rax
mov eax, dword [rdx + 0x14]
add eax, 0x76c
cmp eax, 0x7bc
jge 0x1400ad2ed
mov eax, 0x210000
jmp 0x1400ad315
mov ecx, dword [rdx + 0x10]
add eax, 0xffffffc4
shl eax, 9
inc ecx
or eax, dword [rdx + 0xc]
shl eax, 5
or eax, dword [rdx + 8]
shl eax, 6
or eax, dword [rdx + 4]
shl ecx, 0x15
shl eax, 5
or eax, ecx
mov ecx, dword [rdx]
shr ecx, 1
or eax, ecx
mov rsi, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14011b0c0
add rsp, 0x78
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret
lea rdx, str.filetime
mov ecx, 4
call fcn.1400a68e0
int3
mov rcx, rsi
call fcn.140122088
lea rcx, str.fstat_stdin_
call fcn.1400a6af0
int3