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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x450]
sub rsp, 0x550
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0x5a0], rbx
mov rax, qword [0x1404680d8]
xor rax, rsp
mov qword [rbp + 0x440], rax
mov rdi, rdx
mov r15, rcx
movzx ecx, word [rdx]
lea eax, [rcx - 0x61]
xor r13d, r13d
cmp ax, 0x19
jbe 0x1400d181c
sub cx, 0x41
cmp cx, 0x19
ja 0x1400d1828
cmp word [rdx + 2], 0x3a
mov eax, 2
je 0x1400d182b
mov eax, r13d
mov ecx, eax
mov r8, 0xffffffffffffffff
mov esi, r8d
movzx eax, word [rdx + rcx*2]
lea r12d, [r8 + 0x11]
test ax, ax
je 0x1400d1e06
cmp ax, 0x3a
jne 0x1400d1859
mov eax, ecx
test esi, esi
cmovns eax, esi
mov esi, eax
jmp 0x1400d1868
cmp ax, 0x5c
je 0x1400d1865
cmp ax, 0x2f
jne 0x1400d1868
mov esi, r8d
inc ecx
mov eax, ecx
movzx eax, word [rdx + rcx*2]
test ax, ax
jne 0x1400d1848
test esi, esi
js 0x1400d1e06
lea eax, [rsi + 1]
mov ecx, eax
cmp word [rdx + rax*2], r13w
je 0x1400d1e06
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov eax, esi
add rax, rax
mov qword [rsp + 0x50], rax
lea r12, [rdx + rax]
mov r14d, r13d
cmp word [r12], r13w
je 0x1400d18bb
inc r14d
cmp word [r12 + r14*2], r13w
jne 0x1400d18b1
mov qword [rsp + 0x40], r13
lea ebx, [r14 + 1]
mov eax, 2
mul rbx
cmovo rax, r8
mov rcx, rax
call fcn.140283380
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], r14d
mov dword [rsp + 0x4c], r14d
lea r8, [rbx + rbx]
mov rdx, r12
mov r12, rax
mov rcx, rax
call fcn.140285b80
nop
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
cmp word [rdi], ax
je 0x1400d191a
nop dword [rax + rax]
inc r13d
cmp word [rdi + r13*2], ax
jne 0x1400d1910
xor ecx, ecx
mov qword [rsp + 0x58], rcx
lea ebx, [r13 + 1]
mov eax, 2
mul rbx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140283380
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], r13d
mov dword [rsp + 0x64], r13d
lea r8, [rbx + rbx]
mov rdx, rdi
mov rbx, rax
mov rcx, rax
call fcn.140285b80
nop
cmp esi, r13d
jae 0x1400d197a
mov dword [rsp + 0x60], esi
mov rax, qword [rsp + 0x50]
xor r13d, r13d
mov word [rbx + rax], r13w
jmp 0x1400d197d
xor r13d, r13d
cmp r14d, 6
jbe 0x1400d199b
mov eax, r14d
add rax, 0xfffffffffffffffa
lea rcx, [r12 + rax*2]
call fcn.1400d1190
test al, al
jne 0x1400d1acd
mov ebx, r13d
lea r11, str.:_DATA
nop word [rax + rax]
mov r13d, ebx
inc ebx
cmp byte [rbx + r11], 0
jne 0x1400d19b0
test ebx, ebx
je 0x1400d19e8
lea ecx, [rbx + r14]
mov eax, ecx
shr eax, 1
lea edx, [rcx + 0x10]
add edx, eax
and edx, 0xfffffff0
dec edx
lea rcx, [rsp + 0x40]
call fcn.1400d1200
mov r14d, dword [rsp + 0x48]
lea r11, str.:_DATA
mov eax, r14d
mov rcx, qword [rsp + 0x40]
lea r9, [rcx + rax*2]
xor ecx, ecx
mov r8d, ecx
test ebx, ebx
je 0x1400d1ab3
cmp ebx, 0x20
jb 0x1400d1a80
lea rcx, [r9 + r13*2]
lea rax, [r11 + r13]
cmp r9, rax
ja 0x1400d1a18
cmp rcx, r11
jae 0x1400d1a80
mov edx, ebx
and edx, 0xffffffe0
mov r10d, reloc.WS2_32.dll_recv
movq xmm1, qword [r8 + r11]
xorps xmm0, xmm0
punpcklbw xmm1, xmm0
movdqu xmmword [r9 + r8*2], xmm1
lea eax, [r10 - 8]
movq xmm1, qword [rax + r11]
punpcklbw xmm1, xmm0
movdqu xmmword [r9 + rax*2], xmm1
mov eax, r10d
movq xmm1, qword [rax + r11]
punpcklbw xmm1, xmm0
movdqu xmmword [r9 + rax*2], xmm1
lea eax, [r10 + 8]
mov ecx, eax
movq xmm1, qword [rax + r11]
punpcklbw xmm1, xmm0
movdqu xmmword [r9 + rax*2], xmm1
add r8d, 0x20
add r10d, 0x20
cmp r8d, edx
jb 0x1400d1a23
cmp r8d, ebx
jae 0x1400d1ab3
mov eax, r8d
lea rcx, [rax + r11]
lea rdx, [r9 + rax*2]
mov eax, ebx
sub eax, r8d
mov r8d, eax
nop dword [rax + rax]
movzx eax, byte [rcx]
mov word [rdx], ax
inc rcx
lea rdx, [rdx + 2]
sub r8, 1
jne 0x1400d1aa0
xor r13d, r13d
mov word [r9 + rbx*2], r13w
add r14d, ebx
mov dword [rsp + 0x48], r14d
mov r12, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x58]
movzx ecx, word [rbx]
lea eax, [rcx - 0x61]
cmp ax, 0x19
jbe 0x1400d1ae3
sub cx, 0x41
cmp cx, 0x19
ja 0x1400d1b41
cmp word [rbx + 2], 0x3a
jne 0x1400d1b41
cmp esi, 2
je 0x1400d1afb
cmp esi, 3
jne 0x1400d1b41
cmp word [rbx + 4], 0x5c
jne 0x1400d1b41
mov qword [r15], r13
mov qword [r15 + 8], 0
mov qword [r15 + 0x10], 0
mov qword [r15 + 0x18], 0
mov dword [r15 + 0x20], r13d
mov word [r15 + 0x24], 0
lea rcx, [r15 + 0x28]
mov dword [rcx + 8], r13d
mov rax, qword [rcx]
mov word [rax], r13w
cmp esi, 2
jne 0x1400d1b57
lea rdx, [rsp + 0x58]
call fcn.1400d1530
jmp 0x1400d1b57
xor r8d, r8d
mov rdx, rbx
mov rcx, r15
call fcn.1400d17c0
test al, al
je 0x1400d1de8
and dword [r15 + 0x20], 0xfffffbef
mov qword [r15], r13
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov rsi, 0xffffffffffffffff
mov qword [rsp + 0x68], rsi
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x70]
call fcn.1400d1420
nop
mov eax, 8
mov qword [rsp + 0x20], r13
mov ecx, eax
call fcn.140283380
mov r13, rax
mov qword [rsp + 0x20], rax
xor eax, eax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x2c], 3
mov word [r13], ax
mov rbx, qword [rsp + 0x68]
cmp rbx, 0xffffffffffffffff
je 0x1400d1bf6
mov rax, qword [0x14047bfd0]
test rax, rax
je 0x1400d1d6f
lea rdx, [rbp - 0x80]
mov rcx, rbx
call rax
test eax, eax
je 0x1400d1d7a
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x30], rax
lea rdx, [rbp - 0x78]
jmp 0x1400d1c48
cmp qword [0x14047bfc8], 0
je 0x1400d1d6f
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor r9d, r9d
lea r8, [rbp + 0x1e0]
xor edx, edx
mov rcx, qword [rsp + 0x70]
call qword [0x14047bfc8]
mov rbx, rax
mov qword [rsp + 0x68], rax
cmp rax, 0xffffffffffffffff
je 0x1400d1d67
mov rcx, qword [rbp + 0x1e0]
mov qword [rsp + 0x30], rcx
lea rdx, [rbp + 0x1e8]
lea rcx, [rsp + 0x20]
call fcn.1400d1490
mov r14, r12
mov r13, qword [rsp + 0x20]
mov r12, r13
sub r12, qword [rsp + 0x40]
nop dword [rax]
nop word [rax + rax]
movzx edi, word [r12 + r14]
movzx ebx, word [r14]
lea r14, [r14 + 2]
cmp di, bx
je 0x1400d1cd8
cmp di, 0x61
jae 0x1400d1c8d
movzx esi, di
jmp 0x1400d1caf
cmp di, 0x7a
ja 0x1400d1c98
lea esi, [rdi - 0x20]
jmp 0x1400d1caf
cmp di, 0x7f
ja 0x1400d1ca3
movzx esi, di
jmp 0x1400d1caf
movzx ecx, di
call qword [sym.imp.USER32.dll_CharUpperW]
mov rsi, rax
cmp bx, 0x61
jb 0x1400d1cd3
cmp bx, 0x7a
ja 0x1400d1cc1
sub bx, 0x20
jmp 0x1400d1cd3
cmp bx, 0x7f
jbe 0x1400d1cd3
movzx ecx, bx
call qword [sym.imp.USER32.dll_CharUpperW]
mov rbx, rax
cmp si, bx
jne 0x1400d1d51
test di, di
jne 0x1400d1c70
mov ebx, dword [rsp + 0x28]
cmp ebx, 7
jbe 0x1400d1cfb
lea eax, [rbx - 6]
cmp eax, ebx
jae 0x1400d1cfb
mov ebx, eax
mov dword [rsp + 0x28], eax
xor ecx, ecx
mov word [r13 + rax*2], cx
lea rdi, [r15 + 0x28]
mov ecx, dword [rdi + 8]
mov eax, dword [rdi + 0xc]
sub eax, ecx
cmp ebx, eax
jbe 0x1400d1d26
add ecx, ebx
mov eax, ecx
shr eax, 1
lea edx, [rcx + 0x10]
add edx, eax
and edx, 0xfffffff0
dec edx
mov rcx, rdi
call fcn.1400d1200
mov ecx, dword [rdi + 8]
lea r8d, [rbx + 1]
mov rax, qword [rdi]
lea rcx, [rax + rcx*2]
add r8, r8
mov rdx, r13
call fcn.140285b80
add dword [rdi + 8], ebx
mov rax, qword [rsp + 0x30]
mov qword [r15], rax
mov byte [r15 + 0x24], 1
mov dil, 1
jmp 0x1400d1d91
mov rcx, r13
call fcn.140282c34
nop
mov r12, qword [rsp + 0x40]
xor r13d, r13d
jmp 0x1400d1b8f
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1400d1d7a
mov ecx, 0x78
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
jne 0x1400d1d8e
lea ecx, [rax - 0x24]
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor dil, dil
mov rcx, r13
call fcn.140282c34
nop
mov rcx, qword [rsp + 0x70]
call fcn.140282c34
nop
mov rbx, qword [rsp + 0x68]
cmp rbx, 0xffffffffffffffff
je 0x1400d1dcb
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
mov rcx, 0xffffffffffffffff
cmovne rbx, rcx
mov qword [rsp + 0x68], rbx
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.140282c34
nop
mov rcx, qword [rsp + 0x40]
call fcn.140282c34
jmp 0x1400d2119
mov rcx, rbx
call fcn.140282c34
nop
mov rcx, r12
call fcn.140282c34
mov r12d, reloc.WS2_32.dll_recv
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x50], r13
mov rbx, r8
mov qword [rsp + 0x50], rbx
movzx ecx, word [rdi]
cmp cx, 0x5c
je 0x1400d1e22
cmp cx, 0x2f
jne 0x1400d1e54
movzx eax, word [rdi + 2]
cmp ax, 0x5c
je 0x1400d1e32
cmp ax, 0x2f
jne 0x1400d1e54
cmp word [rdi + 4], 0x3f
jne 0x1400d1e54
movzx eax, word [rdi + 6]
cmp ax, 0x5c
je 0x1400d1e49
cmp ax, 0x2f
jne 0x1400d1e54
mov eax, 8
lea r8d, [rax + 6]
jmp 0x1400d1e5d
mov rax, r13
mov r8d, 6
lea r14, [rdi + rax]
movzx edx, word [r14]
lea eax, [rdx - 0x61]
cmp ax, 0x19
jbe 0x1400d1e7c
sub dx, 0x41
cmp dx, 0x19
ja 0x1400d1f18
cmp word [r14 + 2], 0x3a
jne 0x1400d1f18
movzx eax, word [r14 + 4]
cmp ax, 0x5c
je 0x1400d1e99
cmp ax, 0x2f
jne 0x1400d1f18
cmp word [r8 + rdi], 0
jne 0x1400d1f18
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400d20e0
test al, 0x10
je 0x1400d20e0
mov qword [r15], r13
mov qword [r15 + 8], 0
mov qword [r15 + 0x10], 0
mov qword [r15 + 0x18], 0
mov word [r15 + 0x24], 0
mov dword [r15 + 0x20], eax
mov rdx, r14
lea rcx, [r15 + 0x28]
call fcn.1400d1490
cmp dword [r15 + 0x30], 2
jbe 0x1400d1f05
mov dword [r15 + 0x30], 2
mov rax, qword [r15 + 0x28]
mov word [rax + 4], r13w
mov rdx, rdi
mov rcx, r15
call fcn.1400d21e0
mov dil, 1
jmp 0x1400d20f8
cmp cx, 0x5c
je 0x1400d1f28
cmp cx, 0x2f
jne 0x1400d20e0
mov rcx, rdi
cmp word [rdi + 2], 0
jne 0x1400d1f8a
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
cmp eax, 0xffffffff
je 0x1400d20e0
test cl, 0x10
je 0x1400d20e0
mov qword [r15], r13
mov qword [r15 + 8], 0
mov qword [r15 + 0x10], 0
mov qword [r15 + 0x18], 0
mov dword [r15 + 0x20], r13d
mov word [r15 + 0x24], 0
mov dword [r15 + 0x30], r13d
mov rax, qword [r15 + 0x28]
mov word [rax], r13w
mov dword [r15 + 0x20], ecx
mov dil, 1
jmp 0x1400d20f8
call fcn.1400e3b00
test eax, eax
je 0x1400d20e0
mov eax, eax
lea rsi, [rdi + rax*2]
cmp word [rsi], 0
je 0x1400d20e0
mov rcx, rsi
call fcn.1400e3a40
test eax, eax
jns 0x1400d20e0
mov rdx, rdi
mov rcx, r15
call fcn.1400d21e0
test al, al
je 0x1400d1fda
lea rcx, [r15 + 0x28]
mov rdx, rsi
call fcn.1400d1490
mov dil, 1
jmp 0x1400d20f8
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.1400d1390
nop
mov edx, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x48]
cmp edx, ecx
jne 0x1400d2020
mov eax, ecx
shr eax, 1
lea edx, [rcx + 0x10]
add edx, eax
and edx, 0xfffffff0
dec edx
lea rcx, [rsp + 0x40]
call fcn.1400d1200
mov edx, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x48]
mov eax, ecx
mov r8d, 0x5c
mov rbx, qword [rsp + 0x40]
mov word [rbx + rax*2], r8w
inc ecx
mov word [rbx + rcx*2], r13w
mov dword [rsp + 0x48], ecx
cmp edx, ecx
jne 0x1400d2062
mov eax, ecx
shr eax, 1
lea edx, [rcx + 0x10]
add edx, eax
and edx, 0xfffffff0
dec edx
lea rcx, [rsp + 0x40]
call fcn.1400d1200
mov ecx, dword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov eax, ecx
mov edx, 0x2a
mov word [rbx + rax*2], dx
inc ecx
mov word [rbx + rcx*2], r13w
mov dword [rsp + 0x48], ecx
xor r14b, r14b
mov r8, r15
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.1400d1700
test al, al
je 0x1400d20b6
lea rcx, [r15 + 0x28]
mov rdx, qword [rcx]
movzx eax, word [rdx]
cmp ax, word [0x1403b9cfc]
jne 0x1400d20b3
movzx eax, word [rdx + 2]
cmp ax, word [0x1403b9cfe]
je 0x1400d2178
mov r14b, 1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, eax
test r14b, r14b
jne 0x1400d2147
cmp ecx, 0xffffffff
je 0x1400d20d8
test cl, 0x10
jne 0x1400d2147
mov rcx, rbx
call fcn.140282c34
mov r8, r15
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.1400d1700
movzx edi, al
mov rbx, qword [rsp + 0x50]
cmp rbx, 0xffffffffffffffff
je 0x1400d2119
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
mov rcx, 0xffffffffffffffff
cmovne rbx, rcx
mov qword [rsp + 0x50], rbx
movzx eax, dil
mov rcx, qword [rbp + 0x440]
xor rcx, rsp
call fcn.140282c10
mov rbx, qword [rsp + 0x5a0]
add rsp, 0x550
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov qword [r15], r13
mov qword [r15 + 8], 0
mov qword [r15 + 0x10], 0
mov qword [r15 + 0x18], 0
mov word [r15 + 0x24], 0
cmp ecx, 0xffffffff
cmovne r12d, ecx
mov dword [r15 + 0x20], r12d
lea rcx, [r15 + 0x28]
mov rdx, rsi
call fcn.1400d1490
nop
mov rcx, rbx
call fcn.140282c34
mov dil, 1
jmp 0x1400d20f3