Function at 0x140209950
Capabilities:
Move file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x140672360]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov rsi, r9
mov rdi, rdx
mov r14, rcx
mov dword [rsp + 0x30], 0
cmp qword [rdx + 0x10], 0
jne 0x1402099b5
lea rax, str.0cg_
mov rcx, qword [str.0cg_]
cmp rcx, rax
je 0x1402099f0
test byte [rcx + 0x1c], 1
je 0x1402099f0
cmp byte [rcx + 0x19], 2
jb 0x1402099f0
mov edx, 0xa
jmp 0x1402099e0
cmp qword [r8 + 0x10], 0
jne 0x1402099f7
lea rax, str.0cg_
mov rcx, qword [str.0cg_]
cmp rcx, rax
je 0x1402099f0
test byte [rcx + 0x1c], 1
je 0x1402099f0
cmp byte [rcx + 0x19], 2
jb 0x1402099f0
mov edx, 0xb
lea r8, [0x140608b50]
mov rcx, qword [rcx + 0x10]
call fcn.14007d150
xor al, al
jmp 0x140209c8d
mov rax, qword [rcx]
lea rdx, [rsp + 0x70]
call qword [rax + 0x20]
nop
cmp qword [rbp - 0x80], 0
jne 0x140209a51
lea rax, str.0cg_
mov rcx, qword [str.0cg_]
cmp rcx, rax
je 0x140209c47
test byte [rcx + 0x1c], 1
je 0x140209c47
cmp byte [rcx + 0x19], 2
jb 0x140209c47
mov edx, 0xc
lea r8, [0x140608b50]
mov rcx, qword [rcx + 0x10]
call fcn.14007d150
xor bl, bl
jmp 0x140209c4d
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp - 0x70]
call fcn.14035c350
lea rbx, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae rbx, qword [rsp + 0x70]
lea rax, [0x1405fc4e0]
mov qword [rbp - 0x70], rax
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x68], 0
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x70], xmm0
mov dword [rsp + 0x30], 1
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x38], rax
mov dword [rbp + 0x34], 0x98
xor r8d, r8d
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 0x38]
call fcn.1400b7240
nop
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x70], rax
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
lea r8d, [rcx - 0xa8]
mov dword [rbp + rcx - 0x74], r8d
lea rcx, [rbp - 0x68]
call fcn.1401490b0
nop
mov r8d, 0x32
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.1401496b0
test rax, rax
jne 0x140209b39
mov rax, qword [rbp - 0x70]
movsxd rcx, dword [rax + 4]
mov eax, 6
mov edx, 2
cmp qword [rbp + rcx - 0x28], 0
cmovne eax, edx
or eax, dword [rbp + rcx - 0x60]
and eax, 0x17
mov dword [rbp + rcx - 0x60], eax
and eax, dword [rbp + rcx - 0x5c]
jne 0x140209cb0
cmp qword [rbp + 0x18], 0
jne 0x140209b95
lea rax, str.0cg_
mov rcx, qword [str.0cg_]
cmp rcx, rax
je 0x140209b85
test byte [rcx + 0x1c], 1
je 0x140209b85
cmp byte [rcx + 0x19], 2
jb 0x140209b85
lea r9, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae r9, qword [rsp + 0x70]
mov edx, 0xd
lea r8, [0x140608b50]
mov rcx, qword [rcx + 0x10]
call fcn.1400786c0
nop
lea rcx, [rbp - 0x70]
call fcn.1401c4390
xor bl, bl
jmp 0x140209c4d
mov r8, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 0x10
jb 0x140209ba3
mov rsi, qword [rsi]
mov rdx, rsi
lea rcx, [rbp - 0x70]
call fcn.1400b6680
nop
lea rcx, [rbp - 0x70]
call fcn.1401c4390
mov rdx, rdi
cmp qword [rdi + 0x18], 8
jb 0x140209bc6
mov rdx, qword [rdi]
lea rcx, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae rcx, qword [rsp + 0x70]
mov r8d, 8
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x140209c4b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rax, str.0cg_
mov rcx, qword [str.0cg_]
cmp rcx, rax
je 0x140209c39
test byte [rcx + 0x1c], 1
je 0x140209c39
cmp byte [rcx + 0x19], 2
jb 0x140209c39
cmp qword [rdi + 0x18], 8
jb 0x140209c17
mov rdi, qword [rdi]
lea r9, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae r9, qword [rsp + 0x70]
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rdi
mov rcx, qword [rcx + 0x10]
call fcn.140209880
mov rax, qword [r14]
lea rdx, [rsp + 0x70]
mov rcx, r14
call qword [rax + 8]
xor bl, bl
jmp 0x140209c4d
mov bl, 1
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x140209c8a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140209c85
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140209caa
call fcn.140359090
movzx eax, bl
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.140359070
add rsp, 0x1b0
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140368068
nop
test al, 4
je 0x140209cbd
lea rbx, str.ios_base::badbit_set
jmp 0x140209cd1
test dl, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x38]
call fcn.1400725f0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.140072470
lea rdx, [0x140668e10]
lea rcx, [rsp + 0x48]
call fcn.14035c4f0
int3