Function at 0x1800a6340
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
mov qword [rbp - 0x21], 0xfffffffffffffffe
mov rax, qword [0x1804610b0]
xor rax, rsp
mov qword [rbp + 0xf], rax
mov r14d, r9d
mov rsi, r8
mov rdi, rdx
mov r15, rcx
mov dword [rbp - 0x31], 0
test r8, r8
je 0x1800a5cb7
test r9d, r9d
je 0x1800a5cb7
cmp qword [rdx + 0x10], 0
jne 0x1800a5cd9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.1802a90c0
mov r14d, dword [rax]
call fcn.180174410
test al, al
je 0x1800a5cb7
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rdi, rax
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rbx, rax
test rdi, rdi
je 0x1800a5caa
test rax, rax
je 0x1800a5ca2
xor edx, edx
mov r8d, 0x2000
mov rcx, rdi
call fcn.18029c350
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x38], esi
lea rax, [0x18037a2e0]
mov qword [rsp + 0x30], rax
lea rax, str.RC::RCResourceLoaderBase::SaveToFile
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x8b
lea r9, str.e:zhanlue2345inputprojectlibpinyindata_srcloader_rcresourceloaderbase.cpp
lea r8, str._s__d___s:__s_LastError_d_errno_d
mov edx, 0x1000
mov rcx, rdi
call fcn.180034d20
xor edx, edx
mov r8d, 0x2000
mov rcx, rbx
call fcn.18029c350
nop
lea rdx, [r15 + 0x60]
lea rcx, [rbp - 0x19]
call fcn.180037a20
mov esi, 1
mov dword [rbp - 0x31], esi
cmp qword [rax + 0x18], 8
jb 0x1800a5c6a
mov rax, qword [rax]
mov r9, rax
mov r8, rdi
mov edx, 0x1000
mov rcx, rbx
call fcn.180034d20
and esi, 0xfffffffe
mov dword [rbp - 0x31], esi
lea rcx, [rbp - 0x19]
call fcn.1800338a0
mov r8, rbx
lea rdx, [0x180377970]
lea rcx, str.ResErr
call fcn.180174430
mov rcx, rdi
call fcn.180299904
test rbx, rbx
je 0x1800a5cb7
mov rcx, rbx
call fcn.180299904
xor al, al
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.1802994c0
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rbp - 0x39], 0
mov ecx, 8
call fcn.1802994e4
mov qword [rbp - 0x29], rax
mov qword [rax], 0xffffffffffffffff
mov qword [rbp - 0x39], rax
mov dword [rsp + 0x20], 4
xor r9d, r9d
mov r8d, 0x40000000
mov rdx, rdi
lea rcx, [rbp - 0x39]
call fcn.18016bb70
test al, al
jne 0x1800a5e2d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r14d, eax
call fcn.1802a90c0
mov r15d, dword [rax]
call fcn.180174410
test al, al
je 0x1800a5e24
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rsi, rax
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rbx, rax
test rsi, rsi
je 0x1800a5e17
test rax, rax
je 0x1800a5e0f
xor edx, edx
mov r8d, 0x2000
mov rcx, rsi
call fcn.18029c350
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], r14d
lea rax, [0x180377b58]
mov qword [rsp + 0x30], rax
lea rax, str.RC::RCResourceLoaderBase::SaveToFile
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x93
lea r9, str.e:zhanlue2345inputprojectlibpinyindata_srcloader_rcresourceloaderbase.cpp
lea r8, str._s__d___s:__s_LastError_d_errno_d
mov edx, 0x1000
mov rcx, rsi
call fcn.180034d20
xor edx, edx
mov r8d, 0x2000
mov rcx, rbx
call fcn.18029c350
cmp qword [rdi + 0x18], 8
jb 0x1800a5de6
mov rdi, qword [rdi]
mov r9, rdi
mov r8, rsi
mov edx, 0x1000
mov rcx, rbx
call fcn.180034d20
mov r8, rbx
lea rdx, [0x180377970]
lea rcx, str.ResErr
call fcn.180174430
mov rcx, rsi
call fcn.180299904
test rbx, rbx
je 0x1800a5e24
mov rcx, rbx
call fcn.180299904
mov rbx, qword [rbp - 0x39]
jmp 0x1800a62f3
lea rcx, [rbp - 0x39]
call fcn.1801e1cb0
test al, al
jne 0x1800a5f4c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r14d, eax
call fcn.1802a90c0
mov r15d, dword [rax]
call fcn.180174410
test al, al
je 0x1800a5f43
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rsi, rax
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rbx, rax
test rsi, rsi
je 0x1800a5f36
test rax, rax
je 0x1800a5f2e
xor edx, edx
mov r8d, 0x2000
mov rcx, rsi
call fcn.18029c350
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], r14d
lea rax, [0x180377a98]
mov qword [rsp + 0x30], rax
lea rax, str.RC::RCResourceLoaderBase::SaveToFile
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x9a
lea r9, str.e:zhanlue2345inputprojectlibpinyindata_srcloader_rcresourceloaderbase.cpp
lea r8, str._s__d___s:__s_LastError_d_errno_d
mov edx, 0x1000
mov rcx, rsi
call fcn.180034d20
xor edx, edx
mov r8d, 0x2000
mov rcx, rbx
call fcn.18029c350
cmp qword [rdi + 0x18], 8
jb 0x1800a5f05
mov rdi, qword [rdi]
mov r9, rdi
mov r8, rsi
mov edx, 0x1000
mov rcx, rbx
call fcn.180034d20
mov r8, rbx
lea rdx, [0x180377970]
lea rcx, str.ResErr
call fcn.180174430
mov rcx, rsi
call fcn.180299904
test rbx, rbx
je 0x1800a5f43
mov rcx, rbx
call fcn.180299904
mov rbx, qword [rbp - 0x39]
jmp 0x1800a62d4
mov dword [rbp + 7], 0
mov rbx, qword [rbp - 0x39]
test rbx, rbx
je 0x1800a61c3
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1800a61c3
mov qword [rsp + 0x20], 0
lea r9, [rbp + 7]
mov r8d, r14d
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1800a61c3
cmp r14d, dword [rbp + 7]
jne 0x1800a61c3
mov qword [rbp - 0x29], 0
lea r9, [rbp - 0x29]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [rbp - 0x39]
call fcn.1801e1c20
test al, al
jne 0x1800a60af
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
call fcn.1802a90c0
mov r12d, dword [rax]
call fcn.180174410
test al, al
je 0x1800a5f43
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rsi, rax
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rbx, rax
test rsi, rsi
je 0x1800a5f36
test rax, rax
je 0x1800a5f2e
xor edx, edx
mov r8d, 0x2000
mov rcx, rsi
call fcn.18029c350
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x38], r15d
lea rax, [0x180377c00]
mov qword [rsp + 0x30], rax
lea rax, str.RC::RCResourceLoaderBase::SaveToFile
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xb3
lea r9, str.e:zhanlue2345inputprojectlibpinyindata_srcloader_rcresourceloaderbase.cpp
lea r8, str._s__d___s:__s_LastError_d_errno_d
mov edx, 0x1000
mov rcx, rsi
call fcn.180034d20
xor edx, edx
mov r8d, 0x2000
mov rcx, rbx
call fcn.18029c350
cmp qword [rdi + 0x18], 8
jb 0x1800a6082
mov rdi, qword [rdi]
mov rax, qword [rbp - 0x29]
mov qword [rsp + 0x30], rax
mov eax, dword [rbp + 7]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
mov r9, rdi
mov r8, rsi
mov edx, 0x1000
mov rcx, rbx
call fcn.180034d20
jmp 0x1800a5f18
mov r15, qword [rbp - 0x29]
mov rdx, r15
lea rcx, [rbp - 0x39]
call fcn.1801e1d60
test al, al
jne 0x1800a6198
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
call fcn.1802a90c0
mov r13d, dword [rax]
call fcn.180174410
test al, al
je 0x1800a5f43
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rsi, rax
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rbx, rax
test rsi, rsi
je 0x1800a5f36
test rax, rax
je 0x1800a5f2e
xor edx, edx
mov r8d, 0x2000
mov rcx, rsi
call fcn.18029c350
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x38], r12d
lea rax, [0x180377c70]
mov qword [rsp + 0x30], rax
lea rax, str.RC::RCResourceLoaderBase::SaveToFile
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xc1
lea r9, str.e:zhanlue2345inputprojectlibpinyindata_srcloader_rcresourceloaderbase.cpp
lea r8, str._s__d___s:__s_LastError_d_errno_d
mov edx, 0x1000
mov rcx, rsi
call fcn.180034d20
xor edx, edx
mov r8d, 0x2000
mov rcx, rbx
call fcn.18029c350
cmp qword [rdi + 0x18], 8
jb 0x1800a618e
mov rdi, qword [rdi]
mov qword [rsp + 0x30], r15
jmp 0x1800a608b
mov rbx, qword [rbp - 0x39]
test rbx, rbx
je 0x1800a61bb
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1800a61bb
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1800a61bb
mov qword [rbx], 0xffffffffffffffff
mov dil, 1
jmp 0x1800a62f6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
call fcn.1802a90c0
mov r13d, dword [rax]
call fcn.180174410
test al, al
je 0x1800a62d4
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov r15, rax
lea rdx, [0x180488a90]
mov ecx, 0x2000
call fcn.180299938
mov rsi, rax
test r15, r15
je 0x1800a62c7
test rax, rax
je 0x1800a62bf
xor edx, edx
mov r8d, 0x2000
mov rcx, r15
call fcn.18029c350
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x38], r12d
lea rax, [0x180377ac0]
mov qword [rsp + 0x30], rax
lea rax, str.RC::RCResourceLoaderBase::SaveToFile
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa4
lea r9, str.e:zhanlue2345inputprojectlibpinyindata_srcloader_rcresourceloaderbase.cpp
lea r8, str._s__d___s:__s_LastError_d_errno_d
mov edx, 0x1000
mov rcx, r15
call fcn.180034d20
xor edx, edx
mov r8d, 0x2000
mov rcx, rsi
call fcn.18029c350
cmp qword [rdi + 0x18], 8
jb 0x1800a628a
mov rdi, qword [rdi]
mov eax, dword [rbp + 7]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
mov r9, rdi
mov r8, r15
mov edx, 0x1000
mov rcx, rsi
call fcn.180034d20
mov r8, rsi
lea rdx, [0x180377970]
lea rcx, str.ResErr
call fcn.180174430
mov rcx, r15
call fcn.180299904
test rsi, rsi
je 0x1800a62d4
mov rcx, rsi
call fcn.180299904
test rbx, rbx
je 0x1800a62f3
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1800a62f3
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1800a62f3
mov qword [rbx], 0xffffffffffffffff
xor dil, dil
test rbx, rbx
je 0x1800a632a
mov rcx, qword [rbx]
lea r8, [rcx - 1]
cmp r8, 0xfffffffffffffffd
ja 0x1800a6315
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx], 0
mov edx, 8
mov rcx, rbx
call fcn.180299904
mov qword [rbp - 0x39], 0
movzx eax, dil
jmp 0x1800a5cb9
mov rax, rsp
push rsi
push rdi
push r14
sub rsp, 0x50
mov r14d, r8d
mov rdi, rdx
mov rsi, rcx
cmp r8d, dword [rcx + 0x30]
jbe 0x1800a64a6
mov qword [rax + 0x18], r12
mov qword [rax + 0x20], r15
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
call fcn.1802a90c0
mov r12d, dword [rax]
call fcn.180174410
test al, al
je 0x1800a648b
mov qword [rsp + 0x70], rbx
lea rdx, [0x180488a90]
mov ecx, 0x2000
mov qword [rsp + 0x78], rbp
call fcn.180299938
lea rdx, [0x180488a90]
mov ecx, 0x2000
mov rbp, rax
call fcn.180299938
mov rbx, rax
test rbp, rbp
je 0x1800a6474
test rax, rax
je 0x1800a646c
xor edx, edx
mov r8d, 0x2000
mov rcx, rbp
call fcn.18029c350
mov dword [rsp + 0x40], r12d
lea rax, [0x18037a3d0]
mov dword [rsp + 0x38], r15d
lea r9, str.e:zhanlue2345inputprojectlibpinyindata_srcloader_rcresourceloaderbase.cpp
mov qword [rsp + 0x30], rax
lea r8, str._s__d___s:__s_LastError_d_errno_d
lea rax, str.RC::RCResourceLoaderBase::SaveToFile
mov edx, 0x1000
mov qword [rsp + 0x28], rax
mov rcx, rbp
mov dword [rsp + 0x20], 0xd5
call fcn.180034d20
xor edx, edx
mov r8d, 0x2000
mov rcx, rbx
call fcn.18029c350
cmp qword [rdi + 0x18], 8
mov eax, dword [rsi + 0x30]
jb 0x1800a643a
mov rdi, qword [rdi]
mov dword [rsp + 0x28], eax
mov r9, rdi
mov r8, rbp
mov dword [rsp + 0x20], r14d
mov edx, 0x1000
mov rcx, rbx
call fcn.180034d20
mov r8, rbx
lea rdx, [0x180377970]
lea rcx, str.ResErr
call fcn.180174430
mov rcx, rbp
call fcn.180299904
mov rbp, qword [rsp + 0x78]
test rbx, rbx
je 0x1800a6486
mov rcx, rbx
call fcn.180299904
mov rbx, qword [rsp + 0x70]
mov r15, qword [rsp + 0x88]
xor al, al
mov r12, qword [rsp + 0x80]
add rsp, 0x50
pop r14
pop rdi
pop rsi
ret
mov rax, qword [rcx]
call qword [rax + 0x28]
mov r9d, r14d
mov rdx, rdi
mov r8, rax
mov rcx, rsi
add rsp, 0x50
pop r14
pop rdi
pop rsi
jmp 0x1800a5b30