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

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x240
cmp byte [rcx], 0
mov rbx, rcx
je 0x14004ddcb
mov rax, rcx
xor r9d, r9d
jmp 0x14004d909
cmp r9d, 0x80000000
je 0x14004d93d
add rax, 1
add r9d, 1
cmp byte [rax], 0
jne 0x14004d900
and r9d, 0x7fffffff
add r9d, 1
mov esi, r9d
cmp r9d, 0x104
jbe 0x14004d948
mov eax, 0xffffffff
add rsp, 0x240
pop rbx
pop rsi
pop rdi
ret
mov esi, 1
mov r9d, 1
lea rdi, [rsp + 0x30]
xor edx, edx
xor ecx, ecx
mov r8, rbx
mov dword [rsp + 0x28], 0x104
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x14004dda8
lea rax, [rsi - 1]
cmp rax, 0xe
jbe 0x14004de00
movdqu xmm1, xmmword [rbx]
pxor xmm0, xmm0
mov rax, rsi
movdqa xmm2, xmm0
shr rax, 4
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x30], xmm3
movups xmmword [rsp + 0x40], xmm1
cmp rax, 1
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x10]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0x60], xmm1
cmp rax, 2
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x20]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x70], xmm3
movups xmmword [rsp + 0x80], xmm1
cmp rax, 3
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x30]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x90], xmm3
movups xmmword [rsp + 0xa0], xmm1
cmp rax, 4
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x40]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0xb0], xmm3
movups xmmword [rsp + 0xc0], xmm1
cmp rax, 5
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x50]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0xd0], xmm3
movups xmmword [rsp + 0xe0], xmm1
cmp rax, 6
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x60]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0xf0], xmm3
movups xmmword [rsp + 0x100], xmm1
cmp rax, 7
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x70]
pcmpgtb xmm0, xmm1
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
punpckhbw xmm1, xmm0
movups xmmword [rsp + 0x110], xmm2
movups xmmword [rsp + 0x120], xmm1
cmp rax, 8
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x80]
pxor xmm0, xmm0
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x130], xmm3
movups xmmword [rsp + 0x140], xmm1
cmp rax, 9
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0x90]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x150], xmm3
movups xmmword [rsp + 0x160], xmm1
cmp rax, 0xa
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0xa0]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x170], xmm3
movups xmmword [rsp + 0x180], xmm1
cmp rax, 0xb
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0xb0]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x190], xmm3
movups xmmword [rsp + 0x1a0], xmm1
cmp rax, 0xc
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0xc0]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x1b0], xmm3
movups xmmword [rsp + 0x1c0], xmm1
cmp rax, 0xd
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0xd0]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x1d0], xmm3
movups xmmword [rsp + 0x1e0], xmm1
cmp rax, 0xe
je 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0xe0]
movdqa xmm2, xmm0
pcmpgtb xmm2, xmm1
movdqa xmm3, xmm1
punpcklbw xmm3, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x1f0], xmm3
movups xmmword [rsp + 0x200], xmm1
cmp rax, 0x10
jne 0x14004dcc0
movdqu xmm1, xmmword [rbx + 0xf0]
pcmpgtb xmm0, xmm1
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
punpckhbw xmm1, xmm0
movups xmmword [rsp + 0x210], xmm2
movups xmmword [rsp + 0x220], xmm1
cmp rsi, 0x100
je 0x14004dda8
mov eax, 0x100
jmp 0x14004dd1f
mov rax, rsi
and rax, 0xfffffffffffffff0
test sil, 0xf
je 0x14004dda8
mov rcx, rsi
sub rcx, rax
lea rdx, [rcx - 1]
cmp rdx, 6
jbe 0x14004dd1f
movq xmm0, qword [rbx + rax]
pxor xmm1, xmm1
lea rdx, [rdi + rax*2]
pcmpgtb xmm1, xmm0
movdqa xmm2, xmm0
punpcklbw xmm0, xmm1
punpcklbw xmm2, xmm1
pshufd xmm0, xmm0, 0x4e
movq qword [rdx], xmm2
movq qword [rdx + 8], xmm0
mov rdx, rcx
and rdx, 0xfffffffffffffff8
add rax, rdx
and ecx, 7
je 0x14004dda8
movsx dx, byte [rbx + rax]
mov word [rsp + rax*2 + 0x30], dx
lea rdx, [rax + 1]
cmp rdx, rsi
jae 0x14004dda8
movsx cx, byte [rbx + rax + 1]
mov word [rsp + rdx*2 + 0x30], cx
lea rdx, [rax + 2]
cmp rdx, rsi
jae 0x14004dda8
movsx cx, byte [rbx + rax + 2]
mov word [rsp + rdx*2 + 0x30], cx
lea rdx, [rax + 3]
cmp rdx, rsi
jae 0x14004dda8
movsx cx, byte [rbx + rax + 3]
mov word [rsp + rdx*2 + 0x30], cx
lea rdx, [rax + 4]
cmp rdx, rsi
jae 0x14004dda8
movsx cx, byte [rbx + rax + 4]
mov word [rsp + rdx*2 + 0x30], cx
lea rdx, [rax + 5]
cmp rdx, rsi
jae 0x14004dda8
movsx cx, byte [rbx + rax + 5]
mov word [rsp + rdx*2 + 0x30], cx
lea rdx, [rax + 6]
cmp rdx, rsi
jae 0x14004dda8
movsx ax, byte [rbx + rax + 6]
mov word [rsp + rdx*2 + 0x30], ax
nop dword [rax]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14004d92d
shr eax, 4
and eax, 1
add rsp, 0x240
pop rbx
pop rsi
pop rdi
ret
lea rdi, [rsp + 0x30]
mov r8, rcx
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], 0x104
mov r9d, 1
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x14004dda8
mov esi, 1
xor eax, eax
jmp 0x14004dd1f
xor eax, eax
jmp 0x14004dcd1