Function at 0x140018fd0
Capabilities:
Copy file

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x1c0], rbx
mov rax, qword [0x14016ca00]
xor rax, rsp
mov qword [rbp + 0x70], rax
movzx edi, dl
mov rbx, rcx
xor r15d, r15d
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], r15
mov word [rsp + 0x58], r15w
xor r8d, r8d
lea rdx, [0x1400f50d8]
lea rcx, [rsp + 0x58]
call fcn.140006900
nop
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x20]
call fcn.14006cd20
nop
cmp qword [rsp + 0x70], 8
jb 0x140019060
mov rcx, qword [rsp + 0x58]
call fcn.1400bd20c
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], r15
mov word [rsp + 0x58], r15w
cmp byte [rbp + 0x20], 0
je 0x1400190ae
lea rcx, [rbp + 0x28]
call fcn.1400639d0
lea rcx, [rbp + 0x28]
call fcn.140063370
test al, al
setne cl
mov byte [rbp + 0x20], cl
test cl, cl
jne 0x1400190ae
mov qword [rbp + 0x38], r15
lea rax, [rbp + 0x28]
cmp qword [rbp + 0x40], 8
cmovae rax, qword [rbp + 0x28]
mov word [rax], r15w
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 0x48]
call fcn.140062bb0
mov byte [rbp + 0x20], al
mov byte [rbp + 0x20], 0
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x50], 7
mov qword [rbp - 0x58], r15
mov word [rbp - 0x68], r15w
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0x28]
lea rcx, [rbp - 0x68]
call fcn.140006b90
nop
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x30], 7
mov qword [rbp - 0x38], r15
mov word [rbp - 0x48], r15w
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.140006b90
nop
mov edx, 0x10
lea rcx, [rbp - 0x48]
call fcn.1400622a0
lea rax, str.2345Pinyin64.ime
lea rdx, str.2345Pinyin.ime
test dil, dil
cmovne rdx, rax
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x10], r15
mov qword [rbp - 0x10], 7
mov qword [rbp - 0x18], r15
mov word [rbp - 0x28], r15w
cmp word [rdx], 0
jne 0x140019164
mov r8, r15
jmp 0x14001917b
or r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x140019170
lea rcx, [rbp - 0x28]
call fcn.140006900
nop
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x48]
lea rcx, [rsp + 0x78]
call fcn.14000b600
nop
movzx edx, dil
lea rcx, [rbp - 8]
call fcn.140018f00
nop
mov edx, 0x10
lea rcx, [rbp - 8]
call fcn.1400622a0
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r15
mov word [rsp + 0x38], r15w
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 8]
lea rcx, [rsp + 0x38]
call fcn.140006b90
nop
xor r14b, r14b
call fcn.140068670
test al, al
je 0x140019323
lea r8, str.2345Pinyin.ime
lea rdx, [rbp - 8]
lea rcx, [rsp + 0x58]
call fcn.14000b440
nop
lea rcx, [rsp + 0x58]
call fcn.140063430
test al, al
je 0x1400192e3
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x58]
call fcn.140011ae0
test al, al
je 0x14001923a
mov r14b, 1
jmp 0x1400192e3
mov ecx, 0x800
call fcn.1400bbc88
mov rdi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rbx, rax
test rdi, rdi
je 0x1400192d6
test rax, rax
je 0x1400192ce
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call fcn.1400c2130
lea rax, [0x140124bf8]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCInputInstallUtils::ReplaceSystemInputKernelFile
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rdi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call fcn.1400c2130
lea r9, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae r9, qword [rsp + 0x58]
mov r8, rdi
mov edx, 0x400
mov rcx, rbx
call fcn.140007140
mov rcx, rbx
call fcn.140015100
mov rcx, rdi
call fcn.1400bd2dc
test rbx, rbx
je 0x1400192e3
mov rcx, rbx
call fcn.1400bd2dc
mov r8d, 0x11
lea rdx, str.2345PinyinTSF.dll
lea rcx, [rsp + 0x38]
call fcn.14000b750
nop
cmp qword [rsp + 0x70], 8
jb 0x14001930d
mov rcx, qword [rsp + 0x58]
call fcn.1400bd20c
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], r15
mov word [rsp + 0x58], r15w
jmp 0x14001933a
mov r8d, 0xe
lea rdx, str.2345Pinyin.ime
lea rcx, [rsp + 0x38]
call fcn.14000b750
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x78]
call fcn.140017cb0
test al, al
je 0x140019357
mov ebx, 3
jmp 0x1400195a4
xor sil, sil
lea rcx, [rsp + 0x38]
call fcn.140063430
test al, al
je 0x14001943e
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x38]
call fcn.140011ae0
test al, al
jne 0x14001943b
mov ecx, 0x800
call fcn.1400bbc88
mov rdi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rbx, rax
test rdi, rdi
je 0x14001941e
test rax, rax
je 0x140019416
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call fcn.1400c2130
lea rax, [0x140124ca0]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCInputInstallUtils::ReplaceSystemInputKernelFile
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rdi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call fcn.1400c2130
lea r9, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae r9, qword [rsp + 0x38]
mov r8, rdi
mov edx, 0x400
mov rcx, rbx
call fcn.140007140
mov rcx, rbx
call fcn.140015100
mov rcx, rdi
call fcn.1400bd2dc
test rbx, rbx
je 0x14001942b
mov rcx, rbx
call fcn.1400bd2dc
mov ebx, r15d
test r14b, r14b
setne bl
inc ebx
jmp 0x1400195a4
mov sil, 1
lea rcx, [rsp + 0x78]
call fcn.140063430
test al, al
je 0x1400194f8
cmp qword [rsp + 0x48], 0
je 0x1400194f8
lea rdx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x14001934d
mov rbx, r15
lea rdx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x14001934d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
je 0x1400194e1
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x21
je 0x1400194e1
cmp rbx, 0x32
ja 0x1400194f8
jmp 0x1400194ec
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
inc rbx
cmp rbx, 0x258
jb 0x140019491
mov ecx, 0x800
call fcn.1400bbc88
mov rdi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rbx, rax
test rdi, rdi
je 0x140019583
test rax, rax
je 0x14001957b
xor edx, edx
mov r8d, 0x800
mov rcx, rdi
call fcn.1400c2130
lea rax, [0x140124cc8]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCInputInstallUtils::ReplaceSystemInputKernelFile
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rdi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call fcn.1400c2130
mov r8, rdi
mov edx, 0x400
mov rcx, rbx
call fcn.140007140
mov rcx, rbx
call fcn.140015100
mov rcx, rdi
call fcn.1400bd2dc
test rbx, rbx
je 0x140019590
mov rcx, rbx
call fcn.1400bd2dc
test r14b, r14b
jne 0x14001959f
test sil, sil
mov ebx, 1
je 0x1400195a4
mov ebx, 2
cmp qword [rsp + 0x50], 8
jb 0x1400195b6
mov rcx, qword [rsp + 0x38]
call fcn.1400bd20c
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], r15
mov word [rsp + 0x38], r15w
cmp qword [rbp + 0x10], 8
jb 0x1400195da
mov rcx, qword [rbp - 8]
call fcn.1400bd20c
mov qword [rbp + 0x10], 7
mov qword [rbp + 8], r15
mov word [rbp - 8], r15w
cmp qword [rbp - 0x70], 8
jb 0x1400195fc
mov rcx, qword [rsp + 0x78]
call fcn.1400bd20c
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], r15
mov word [rsp + 0x78], r15w
cmp qword [rbp - 0x10], 8
jb 0x14001961e
mov rcx, qword [rbp - 0x28]
call fcn.1400bd20c
mov qword [rbp - 0x10], 7
mov qword [rbp - 0x18], r15
mov word [rbp - 0x28], r15w
cmp qword [rbp - 0x30], 8
jb 0x14001963f
mov rcx, qword [rbp - 0x48]
call fcn.1400bd20c
mov qword [rbp - 0x30], 7
mov qword [rbp - 0x38], r15
mov word [rbp - 0x48], r15w
cmp qword [rbp - 0x50], 8
jb 0x140019660
mov rcx, qword [rbp - 0x68]
call fcn.1400bd20c
mov qword [rbp - 0x50], 7
mov qword [rbp - 0x58], r15
mov word [rbp - 0x68], r15w
lea rcx, [rbp + 0x20]
call fcn.14006cda0
mov eax, ebx
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.1400bcae0
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x180
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret