Function at 0x140009530
Capabilities:
Check if file exists
Write file on windows

Disassembly:
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbp
push rbx
lea rbp, [rsp - 0x21d8]
mov eax, 0x22d8
call fcn.140012e50
sub rsp, rax
mov rax, qword [0x1400441a0]
xor rax, rsp
mov qword [rbp + 0x21b0], rax
xor edx, edx
lea rcx, [rbp + 0x170]
mov r8d, 0x208
call fcn.140014200
lea r8, str.C:log_
mov edx, 0x104
lea rcx, [rbp + 0x170]
call fcn.14001b500
xor edx, edx
lea rcx, [rbp + 0x9b0]
mov r8d, 0x800
call fcn.140014200
lea r9, str.LanShanIME
lea r8, [rbp + 0x170]
lea rdx, str._s_s.log
lea rcx, [rbp + 0x380]
call fcn.140002ef0
xor edx, edx
lea rcx, [rbp + 0x590]
mov r8d, 0x208
call fcn.140014200
xor edx, edx
lea rcx, [rsp + 0x60]
mov r8d, 0x208
call fcn.140014200
mov r8d, 0x104
lea rdx, [rsp + 0x60]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
or rbx, 0xffffffffffffffff
lea rcx, [rsp + 0x60]
mov rax, rbx
inc rax
cmp word [rcx + rax*2], 0
jne 0x140009612
test rax, rax
je 0x14000987d
mov edx, 0x5c
mov qword [rsp + 0x22d0], rsi
lea rcx, [rsp + 0x60]
call fcn.140014138
xor esi, esi
lea r9, str.LanShanIME
lea r8, [rbp + 0x170]
lea rdx, str._s_s
lea rcx, [rbp + 0x7a0]
mov word [rax], si
call fcn.140002ef0
lea rcx, [rbp + 0x7a0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140009875
mov qword [rsp + 0x22c8], rdi
lea rcx, [rsp + 0x60]
mov rax, rbx
nop word [rax + rax]
cmp word [rcx + rax*2 + 2], si
lea rax, [rax + 1]
jne 0x140009690
lea r8, [rsp + 0x62]
mov edx, 0x104
lea r8, [r8 + rax*2]
lea rcx, [rbp + 0x590]
call fcn.14001b500
lea r9, [rbp + 0x590]
lea r8, [rbp + 0x7a0]
lea rdx, str._s_s.txt
lea rcx, [rbp + 0x380]
call fcn.140002ef0
lea rdi, [rbp + 0x21f8]
call fcn.140001d40
mov rcx, qword [rbp + 0x21f0]
lea rdx, [rbp + 0x9b0]
mov r9d, 0x3ff
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rcx
mov rcx, qword [rax]
lea r8d, [r9 + 1]
call fcn.140018a38
xor ecx, ecx
call fcn.14001ad00
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x58], rax
call fcn.14001ac20
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
test rdi, rdi
je 0x14000986d
mov r9d, dword [rdi + 0x10]
lea rcx, [rbp + 0x9b0]
mov r8d, dword [rdi + 0x14]
lea rdx, str.__d__d__d__d__d__d___d_:_s
mov qword [rsp + 0x48], rcx
inc r9d
mov ecx, dword [rdi]
add r8d, 0x76c
mov dword [rsp + 0x40], eax
mov eax, dword [rdi + 4]
mov dword [rsp + 0x38], ecx
lea rcx, [rbp + 0x11b0]
mov dword [rsp + 0x30], eax
mov eax, dword [rdi + 8]
mov dword [rsp + 0x28], eax
mov eax, dword [rdi + 0xc]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x22c0], r14
call fcn.1400094d0
lea rcx, [rbp + 0x380]
mov word [rbp + 0x11ae], si
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov r14d, 1
lea rdx, [0x14002f340]
test eax, eax
lea rcx, [rbp + 0x380]
cmovne esi, r14d
call fcn.14001b4f4
mov rdi, rax
test rax, rax
je 0x140009865
test esi, esi
jne 0x1400097f2
mov eax, 0xfeff
lea r8d, [r14 + 1]
mov r9, rdi
mov word [rsp + 0x54], ax
mov edx, r14d
lea rcx, [rsp + 0x54]
call fcn.14001b38c
lea rax, [rbp + 0x11b0]
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x140009800
add ebx, ebx
lea rcx, [rbp + 0x11b0]
movsxd r8, ebx
mov r9, rdi
mov rdx, r14
call fcn.14001b38c
mov eax, 0xd
lea rcx, [rsp + 0x50]
mov r9, rdi
mov word [rsp + 0x50], ax
mov rdx, r14
lea r8d, [rax - 0xb]
call fcn.14001b38c
mov eax, 0xa
lea rcx, [rsp + 0x50]
mov r9, rdi
mov word [rsp + 0x50], ax
mov rdx, r14
lea r8d, [rax - 8]
call fcn.14001b38c
mov rcx, rdi
call fcn.14001b0e0
mov r14, qword [rsp + 0x22c0]
mov rdi, qword [rsp + 0x22c8]
mov rsi, qword [rsp + 0x22d0]
mov rcx, qword [rbp + 0x21b0]
xor rcx, rsp
call fcn.140012ec0
add rsp, 0x22d8
pop rbx
pop rbp
ret