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

Disassembly:
push rdi
push r12
push r14
sub rsp, 0x40
cmp dword [0x1004add50], 0
mov r12d, r8d
mov rdi, rdx
je 0x100453b08
mov eax, 1
add rsp, 0x40
pop r14
pop r12
pop rdi
ret
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov rbp, 0xffffffffffffffff
mov qword [rsp + 0x70], rsi
test rdi, rdi
je 0x100453b32
mov rsi, rbp
inc rsi
cmp word [rdx + rsi*2], 0
jne 0x100453b26
jmp 0x100453b37
mov esi, 3
mov r8d, esi
mov qword [rsp + 0x38], r13
not r8d
mov qword [rsp + 0x30], r15
lea rbx, [0x1004add60]
add r8d, 0x104
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r9d, eax
test eax, eax
je 0x100453dd6
lea rcx, [rbx - 2]
lea rdx, [rcx + r9*2]
lea rcx, str._s__r_n
call fcn.10044c220
xor r13d, r13d
mov ecx, r13d
mov r8d, r13d
cmp rdx, rbx
jbe 0x100453bb3
movzx eax, word [rdx]
test r8, r8
jne 0x100453ba0
cmp ax, 0x2e
mov r8, rdx
cmovne r8, r13
jmp 0x100453ba8
cmp ax, 0x5c
cmove rcx, rdx
sub rdx, 2
test rcx, rcx
je 0x100453b86
jmp 0x100453bbc
test rcx, rcx
je 0x100453dd6
add rcx, 2
lea r15, [r8 + 2]
mov r14d, 1
test rdi, rdi
je 0x100453be1
lea r8d, [rsi*2 + 2]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
jmp 0x100453c3c
mov r8, qword [str.msmdsrv.exe]
mov rax, rcx
sub rax, rbx
mov edx, r14d
sar rax, 1
sub r9d, eax
mov dword [rsp + 0x28], r9d
mov r9d, dword [0x1004993c8]
mov qword [rsp + 0x20], rcx
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_CompareStringW]
mov edi, r13d
lea r8d, [rsi*2 + 2]
cmp eax, 2
lea rdx, [0x100480640]
mov rcx, r15
cmove edi, r14d
call sub.VCRUNTIME140.dll_memcpy
test edi, edi
jne 0x100453dd6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x100453dd6
lea r9, [0x1004ae390]
mov r8d, 4
mov rcx, r9
mov edx, r8d
mov rax, rbx
nop dword [rax]
nop dword [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, r14
jne 0x100453c70
mov rax, qword [rax]
mov qword [rcx], rax
mov rax, rbp
nop dword [rax + rax]
inc rax
cmp word [r9 + rax*2], r13w
jne 0x100453cd0
dec rax
cmp word [r9 + rax*2], 0x5c
lea rax, [r9 + rax*2]
je 0x100453cff
nop dword [rax]
cmp rax, r9
jbe 0x100453cff
sub rax, 2
cmp word [rax], 0x5c
jne 0x100453cf0
mov word [rax], r13w
lea rcx, str.wszIniRegDirectory__s__r_n
sub rax, r9
mov rdx, r9
sar rax, 1
inc eax
mov dword [0x1004add54], eax
call fcn.10044c220
lea rdx, [0x1004ae180]
mov rcx, rdx
nop word [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
lea rbx, [rbx + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rbx - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rbx - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rbx - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rbx - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rbx - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rbx - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub r8, r14
jne 0x100453d30
mov rax, qword [rbx]
mov qword [rcx], rax
nop dword [rax + rax]
inc rbp
cmp word [rdx + rbp*2], r13w
jne 0x100453d90
movsd xmm0, qword [str..ext]
mov eax, ebp
lea rcx, [rdx + rax*2]
movzx eax, word [0x1004778c0]
movsd qword [rcx], xmm0
mov word [rcx + 8], ax
lea rcx, str.g_wszIniRegExtPath:__s__r_n
call fcn.10044c220
mov dword [0x1004add58], r12d
mov eax, r14d
mov dword [0x1004add50], r14d
jmp 0x100453dd8
xor eax, eax
mov r13, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop r12
pop rdi
ret