Function at 0x140002990
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x14009d080]
xor rax, rsp
mov qword [rbp + 0xb0], rax
mov rbx, rcx
cmp byte [rcx + 0xa0], 1
je 0x1400029d7
call fcn.140003fd0
mov rcx, rbx
call fcn.140004310
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1400029e6
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140006730
nop
mov rdx, rax
mov rcx, rbx
call fcn.140005450
mov esi, eax
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x140002a43
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002a3e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002cbd
call fcn.140018280
test esi, esi
js 0x140002c8e
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140006950
nop
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140009100
nop
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x140002aa9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002aa4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002cc3
call fcn.140018280
xor ebx, ebx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], bx
cmp qword [rbp - 0x78], rbx
jne 0x140002ace
mov esi, 0xc0000001
jmp 0x140002c51
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp - 0x60]
call fcn.14001ed00
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rdx, qword [rsp + 0x78]
lea rcx, [rbp - 0x60]
call fcn.1400078d0
nop
call fcn.140027d84
movsxd rcx, eax
movabs rax, 0x1c926b9d39431d5f
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0x23d6df
sub rcx, rax
add ecx, 0xdd9d
movsxd r14, ecx
mov rcx, r14
call fcn.14001863c
mov rdi, rax
test r14, r14
je 0x140002b72
nop
call fcn.140027d84
mov r9d, eax
mov eax, 0x80808081
imul r9d
add edx, r9d
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0xff
sub r9d, ecx
mov byte [rbx + rdi], r9b
inc rbx
cmp rbx, r14
jb 0x140002b40
mov r8, r14
mov rdx, rdi
lea rcx, [rbp - 0x60]
call fcn.140007cc0
lea rcx, [rbp - 0x58]
call fcn.1400086c0
test rax, rax
jne 0x140002bbf
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov eax, 6
mov edx, 2
cmp qword [rbp + rcx - 0x18], 0
cmovne eax, edx
or eax, dword [rbp + rcx - 0x50]
and eax, 0x17
mov dword [rbp + rcx - 0x50], eax
and eax, dword [rbp + rcx - 0x4c]
jne 0x140002cc9
mov rcx, rdi
call fcn.140018280
nop word [rax + rax]
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x140002bd0
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x58]
call fcn.140007820
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx - 0x64], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x48], rax
lea rcx, [rbp + 0x48]
call fcn.1400179b4
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x140002c8e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002c89
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002cb7
call fcn.140018280
mov eax, esi
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.140018260
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
call fcn.140029b80
int3
call fcn.140029b80
nop
call fcn.140029b80
nop
test al, 4
je 0x140002cd6
lea rbx, str.ios_base::badbit_set
jmp 0x140002cea
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 + 0x30]
call fcn.1400013a0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.140001b10
lea rdx, [0x14009b700]
lea rcx, [rsp + 0x50]
call fcn.14001e564
int3