Function at 0x140014ca0
Capabilities:
Copy file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xf8
mov rax, qword [0x1400691d8]
xor rax, rsp
mov qword [rbp + 0xf], rax
mov rsi, r9
mov r14, r8
mov qword [rbp - 0x69], rdx
mov r15, rcx
mov qword [rbp - 0x51], rcx
mov qword [rbp - 0x49], rdx
mov qword [rbp - 0x41], r8
mov qword [rbp - 0x39], r9
xor ebx, ebx
mov r13d, ebx
mov r12d, ebx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rbx
mov qword [rbp - 0x79], rbx
xor dil, dil
mov qword [rbp - 0x31], rbx
mov qword [rbp - 0x21], rbx
mov qword [rbp - 0x19], 7
mov word [rbp - 0x31], bx
lea r8d, [rbx + 7]
lea rdx, str.C:_temp
lea rcx, [rbp - 0x31]
call fcn.140006e00
nop
mov rcx, r15
cmp qword [r15 + 0x18], 8
jb 0x140014d38
mov rcx, qword [r15]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x140014d94
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test eax, eax
jle 0x140014d7d
movzx ebx, ax
or ebx, 0x80070000
test ebx, ebx
jns 0x140014dbc
mov edx, ebx
lea rcx, str.Error_creating_file_reader__error_is__08.8lx
call fcn.140010e20
jmp 0x140015249
mov ecx, 0x18
call fcn.140025ba4
mov r13, rax
mov qword [rbp - 0x59], rax
lea rax, vtable.FileStream.0
mov qword [r13], rax
mov dword [r13 + 0x10], 1
mov qword [r13 + 8], rbx
mov rcx, r14
cmp qword [r14 + 0x18], 8
jb 0x140014dc9
mov rcx, qword [r14]
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov edx, 0x40000000
lea r8d, [rax + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x140014e22
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test eax, eax
jle 0x140014e10
movzx ebx, ax
or ebx, 0x80070000
test ebx, ebx
jns 0x140014e4c
mov edx, ebx
lea rcx, str.Error_creating_file_writer__error_is__08.8lx
jmp 0x140015226
mov ecx, 0x18
call fcn.140025ba4
mov r12, rax
mov qword [rbp - 0x59], rax
lea rax, vtable.FileStream.0
mov qword [r12], rax
mov dword [r12 + 0x10], 1
mov qword [r12 + 8], rbx
xor r8d, r8d
lea rdx, [rsp + 0x40]
lea rcx, [0x14005aad0]
call qword [sym.imp.XmlLite.dll_CreateXmlReader]
mov ebx, eax
test eax, eax
jns 0x140014e73
lea rcx, str.Error_creating_xml_reader__error_is__08.8lx
jmp 0x140015224
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
xor r8d, r8d
lea edx, [r8 + 4]
call qword [rax + 0x28]
lea rax, [rbp - 0x31]
cmp qword [rbp - 0x19], 8
cmovae rax, qword [rbp - 0x31]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, str.utf_16
xor edx, edx
mov rcx, r13
call qword [sym.imp.XmlLite.dll_CreateXmlReaderInputWithEncodingName]
mov ebx, eax
test eax, eax
jns 0x140014ec9
lea rcx, str.Error_creating_xml_reader_with_encoding_code_page__error_is__08.8lx
jmp 0x140015224
xor r8d, r8d
lea rdx, [rsp + 0x48]
lea rcx, [0x14005aaf8]
call qword [sym.imp.XmlLite.dll_CreateXmlWriter]
mov ebx, eax
test eax, eax
jns 0x140014ef0
lea rcx, str.Error_creating_xml_writer__error_is__08.8lx
jmp 0x140015224
lea r9, [rbp - 0x79]
lea r8, str.utf_16
xor edx, edx
mov rcx, r12
call qword [sym.imp.XmlLite.dll_CreateXmlWriterOutputWithEncodingName]
mov ebx, eax
test eax, eax
jns 0x140014f18
lea rcx, str.Error_creating_xml_reader_with_encoding_code_page__error_is__08.8lx
jmp 0x140015224
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x58]
call qword [rax + 0x18]
mov ebx, eax
test eax, eax
jns 0x140014f3a
lea rcx, str.Error_setting_input_for_reader__error_is__08.8lx
jmp 0x140015224
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov rdx, qword [rbp - 0x79]
call qword [rax + 0x18]
mov ebx, eax
test eax, eax
jns 0x140014f5b
lea rcx, str.Error_setting_output_for_writer__error_is__08.8lx
jmp 0x140015224
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov edx, 1
mov r8d, edx
call qword [rax + 0x28]
mov ebx, eax
test eax, eax
jns 0x140014fa0
lea rcx, str.Error_setting_indent_property_in_writer__error_is__08.8lx
jmp 0x140015224
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x40]
call qword [rax + 0xa8]
test eax, eax
mov ebx, eax
js 0x1400151b3
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x30]
test eax, eax
mov ebx, eax
jne 0x14001522b
mov ecx, dword [rsp + 0x50]
sub ecx, 1
je 0x14001511d
sub ecx, 2
je 0x14001505c
cmp ecx, 0xc
jne 0x140014f80
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
xor r8d, r8d
lea rdx, [rbp - 0x71]
call qword [rax + 0x60]
mov ebx, eax
test eax, eax
js 0x14001521d
mov r8, qword [rbp - 0x71]
test r8, r8
je 0x140015038
xor r9d, r9d
mov ecx, r9d
lea r9, str.Command
nop word [rax + rax]
movzx edx, word [r8 + rcx*2]
inc rcx
movzx eax, word [r9 + rcx*2 - 2]
sub edx, eax
jne 0x140015028
cmp rcx, 8
jne 0x140015010
movzx edi, dil
test edx, edx
mov r9d, 0
cmove edi, r9d
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + MsiSetPropertyW]
mov ebx, eax
test eax, eax
jns 0x140014fa0
lea rcx, str.Error_writing_WriteFullEndElement__error_is__08.8lx
jmp 0x140015224
cmp dil, 1
jne 0x140014f80
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
xor r8d, r8d
lea rdx, [rbp - 0x61]
call qword [rax + 0x80]
mov ebx, eax
test eax, eax
js 0x140015214
mov rax, qword [rbp - 0x61]
test rax, rax
je 0x14001520d
xor ecx, ecx
cmp cx, word [rax]
je 0x14001520d
mov rdx, qword [rbp - 0x69]
lea rcx, [rbp - 0x11]
call fcn.140009620
nop
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
lea rdx, [rbp - 0x11]
cmp qword [rbp + 7], 8
cmovae rdx, qword [rbp - 0x11]
call qword [rax + 0xe0]
mov ebx, eax
test eax, eax
js 0x1400151bc
xor dil, dil
mov rdx, qword [rbp + 7]
cmp rdx, 8
jb 0x140014fa0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015113
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001547d
call fcn.140025900
jmp 0x140014fa0
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + 0xa0]
test eax, eax
jne 0x140014f80
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
xor r8d, r8d
lea rdx, [rbp - 0x71]
call qword [rax + 0x60]
mov ebx, eax
test eax, eax
js 0x14001521d
mov rax, qword [rbp - 0x71]
test rax, rax
je 0x140015190
mov r8, rsi
cmp qword [rsi + 0x18], 8
jb 0x140015165
mov r8, qword [rsi]
sub r8, rax
nop dword [rax + rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x140015184
add rax, 2
test ecx, ecx
jne 0x140015170
test edx, edx
jne 0x140015190
mov dil, 1
jmp 0x140014f80
xor dil, dil
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x40]
call qword [rax + 0xa8]
mov ebx, eax
test eax, eax
jns 0x140014fa0
lea rcx, str.Error_writing_WriteNodeShallow__error_is__08.8lx
jmp 0x140015224
mov edx, eax
lea rcx, str.Error_writing_WriteString__error_is__08.8lx
call fcn.140010e20
nop
mov rdx, qword [rbp + 7]
cmp rdx, 8
jb 0x14001522b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015206
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001547d
call fcn.140025900
jmp 0x14001522b
mov ebx, 0x8000ffff
jmp 0x14001522b
lea rcx, str.Error_reading_value__error_is__08.8lx
jmp 0x140015224
lea rcx, str.Error_reading_element_name__error_is__08.8lx
mov edx, eax
call fcn.140010e20
test r13, r13
je 0x14001523a
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x10]
test r12, r12
je 0x140015249
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140015259
mov rax, qword [rcx]
call qword [rax + 0x10]
xor r12d, r12d
mov qword [rsp + 0x40], r12
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140015271
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsp + 0x48], r12
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140015286
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsp + 0x58], r12
mov rcx, qword [rbp - 0x79]
test rcx, rcx
je 0x14001529a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbp - 0x79], r12
mov rdx, r15
cmp qword [r15 + 0x18], 8
jb 0x1400152ab
mov rdx, qword [r15]
mov rcx, r14
cmp qword [r14 + 0x18], 8
jb 0x1400152b8
mov rcx, qword [r14]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
nop
mov rdx, qword [rbp - 0x19]
cmp rdx, 8
jb 0x140015302
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x31]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400152fd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140015483
call fcn.140025900
mov qword [rbp - 0x21], r12
mov qword [rbp - 0x19], 7
mov word [rbp - 0x31], r12w
mov rdx, qword [r15 + 0x18]
cmp rdx, 8
jb 0x140015352
mov rcx, qword [r15]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14001534d
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140015489
mov rcx, r8
call fcn.140025900
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], 7
mov word [r15], r12w
mov rdi, qword [rbp - 0x69]
mov rdx, qword [rdi + 0x18]
cmp rdx, 8
jb 0x1400153a5
mov rcx, qword [rdi]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400153a0
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001548f
mov rcx, r8
call fcn.140025900
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], 7
mov word [rdi], r12w
mov rdx, qword [r14 + 0x18]
cmp rdx, 8
jb 0x1400153f4
mov rcx, qword [r14]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400153ef
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140015471
mov rcx, r8
call fcn.140025900
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], 7
mov word [r14], r12w
mov rdx, qword [rsi + 0x18]
cmp rdx, 8
jb 0x14001543f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x14001543a
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140015477
mov rcx, r8
call fcn.140025900
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
mov eax, ebx
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.1400258e0
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14002e1d4
nop
call fcn.14002e1d4
nop
call fcn.14002e1d4
nop
call fcn.14002e1d4
nop
call fcn.14002e1d4
nop
call fcn.14002e1d4
int3