Function at 0x14006057c
Capabilities:
Delete file

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4a0
mov qword [rax - 0x438], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x140126108]
xor rax, rsp
mov qword [rsp + 0x490], rax
mov rdi, rdx
mov r15d, ecx
xor esi, esi
mov r12d, esi
mov dword [rsp + 0x60], esi
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.140066dc0
nop
mov qword [rsp + 0x460], rsi
lea eax, [rsi + 7]
mov qword [rsp + 0x468], rax
mov word [rsp + 0x450], si
mov qword [rsp + 0x440], rsi
mov qword [rsp + 0x448], rax
mov word [rsp + 0x430], si
mov r13b, 1
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov byte [rsp + 0x40], sil
mov dword [rsp + 0x44], esi
mov dword [rsp + 0x48], 0x2710
lea r14d, [rsi + 1]
cmp r14d, r15d
jge 0x140060dc5
movsxd rbx, r14d
mov rcx, qword [rdi + rbx*8]
call fcn.14008da94
cmp rax, 2
jae 0x140060681
call fcn.1400604a4
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x430]
call fcn.140001a14
nop
lea rcx, [rsp + 0x450]
call fcn.140001a14
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14006067a
mov rax, qword [rsp + 0x50]
call qword [case.0x140051314.0]
nop
mov eax, ebx
jmp 0x14006101b
mov rcx, qword [rdi + rbx*8]
movzx eax, word [rcx]
sub ax, 0x2d
mov edx, 0xfffd
test dx, ax
je 0x1400606d8
call fcn.1400604a4
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x430]
call fcn.140001a14
nop
lea rcx, [rsp + 0x450]
call fcn.140001a14
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400606d1
mov rax, qword [rsp + 0x50]
call qword [case.0x140051314.0]
nop
mov eax, ebx
jmp 0x14006101b
add rcx, 2
lea rdx, [0x1400cfe28]
call fcn.14008de50
test eax, eax
je 0x140060d83
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.help
call fcn.14008de50
test eax, eax
je 0x140060d83
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cfe3c]
call fcn.14008de50
test eax, eax
je 0x140060d83
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cfe40]
call fcn.14008de50
test eax, eax
je 0x140060782
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.output
call fcn.14008de50
test eax, eax
je 0x140060782
lea esi, [r14 + 1]
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.noheader
call fcn.14008de50
test eax, eax
jne 0x140060859
xor esi, esi
mov r13b, sil
jmp 0x140060d39
lea esi, [r14 + 1]
cmp esi, r15d
jge 0x14006075c
movsxd r14, esi
mov rdx, qword [rdi + r14*8]
or r8, 0xffffffffffffffff
cmp word [rdx], 0x22
jne 0x1400607bb
add rdx, 2
xor ebx, ebx
inc r8
cmp word [rdx + r8*2], bx
jne 0x1400607a2
lea rcx, [rsp + 0x450]
call fcn.140001a78
jmp 0x1400607d4
xor ebx, ebx
inc r8
cmp word [rdx + r8*2], bx
jne 0x1400607bd
lea rcx, [rsp + 0x450]
call fcn.140001a78
lea rax, [rsp + 0x450]
cmp qword [rsp + 0x468], 8
cmovae rax, qword [rsp + 0x450]
mov rcx, qword [rsp + 0x460]
lea rax, [rax + rcx*2]
cmp word [rax - 2], 0x22
jne 0x140060c72
lea rdx, [rcx - 1]
cmp rdx, rcx
ja 0x140060839
lea rax, [rsp + 0x450]
cmp qword [rsp + 0x468], 8
cmovae rax, qword [rsp + 0x450]
mov qword [rsp + 0x460], rdx
mov word [rax + rdx*2], bx
jmp 0x140060c72
lfence
xor r8d, r8d
sub rdx, qword [rsp + 0x460]
lea rcx, [rsp + 0x450]
call fcn.14000f6c0
jmp 0x140060c72
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cfe6c]
call fcn.14008de50
test eax, eax
jne 0x14006087d
mov byte [0x14012a5f0], 1
jmp 0x140060c72
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cfe70]
call fcn.14008de50
test eax, eax
je 0x1400608b1
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cfe78]
call fcn.14008de50
test eax, eax
jne 0x140060c79
cmp esi, r15d
jge 0x140060c79
movsxd r14, esi
mov rdx, qword [rdi + r14*8]
or r8, 0xffffffffffffffff
cmp word [rdx], 0x22
jne 0x1400608ea
add rdx, 2
xor ebx, ebx
inc r8
cmp word [rdx + r8*2], bx
jne 0x1400608d1
lea rcx, [rsp + 0x430]
call fcn.140001a78
jmp 0x140060903
xor ebx, ebx
inc r8
cmp word [rdx + r8*2], bx
jne 0x1400608ec
lea rcx, [rsp + 0x430]
call fcn.140001a78
lea rax, [rsp + 0x430]
cmp qword [rsp + 0x448], 8
cmovae rax, qword [rsp + 0x430]
mov rcx, qword [rsp + 0x440]
lea rax, [rax + rcx*2]
cmp word [rax - 2], 0x22
jne 0x14006097c
lea rdx, [rcx - 1]
cmp rdx, rcx
ja 0x140060961
lea rax, [rsp + 0x430]
cmp qword [rsp + 0x448], 8
cmovae rax, qword [rsp + 0x430]
mov qword [rsp + 0x440], rdx
mov word [rax + rdx*2], bx
jmp 0x14006097c
lfence
xor r8d, r8d
sub rdx, qword [rsp + 0x440]
lea rcx, [rsp + 0x430]
call fcn.14000f6c0
lea rcx, [rsp + 0x430]
call fcn.140066964
test al, al
je 0x1400609ad
lea rcx, [rsp + 0x430]
cmp qword [rsp + 0x448], 8
cmovae rcx, qword [rsp + 0x430]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, 3
mov ecx, esi
call fcn.1400637d4
mov r8d, 0xa00000
lea rdx, [rsp + 0x430]
lea rcx, [rsp + 0x88]
call fcn.1400634e4
mov rcx, rax
call fcn.1400631ec
lea rcx, [rsp + 0x68]
call fcn.140065cbc
and dword [rsp + 0x20], 0
and qword [rsp + 0x26], 0
mov word [rsp + 0x2e], bx
mov eax, 0xffff
mov word [rsp + 0x24], ax
lea rcx, [rsp + 0x68]
call fcn.140065cf0
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x20]
call fcn.14006553c
lea r8d, [rsi - 2]
mov edx, esi
lea rcx, [rsp + 0x120]
call fcn.14000fae0
nop
lea rdx, str.SHIM_START_TIME
lea rcx, [rsp + 0x130]
call fcn.140049254
mov rbx, rax
lea eax, [rsi + 0x2d]
mov rcx, qword [rbx]
movsxd rdx, dword [rcx + 4]
mov word [rdx + rbx + 0x58], ax
lea esi, [rax - 0x2e]
mov edx, esi
lea rcx, [rsp + 0xe8]
call fcn.140069c90
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
mov rax, qword [rax]
call qword [case.0x140051314.0]
movzx edx, word [rsp + 0x22]
mov rcx, rbx
call fcn.140013d90
lea rdx, [0x1400fe274]
mov rcx, rax
call fcn.140049254
movzx edx, word [rsp + 0x26]
mov rcx, rax
call fcn.140013d90
lea rdx, [0x1400fe274]
mov rcx, rax
call fcn.140049254
mov rbx, rax
lea edx, [rsi + 2]
lea rcx, [rsp + 0xf8]
call fcn.140069c90
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
mov rax, qword [rax]
call qword [case.0x140051314.0]
movzx edx, word [rsp + 0x20]
mov rcx, rbx
call fcn.140013d90
lea rdx, [0x1400f4510]
mov rcx, rax
call fcn.140049254
mov rbx, rax
mov edx, esi
lea rcx, [rsp + 0x108]
call fcn.140069c90
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
mov rax, qword [rax]
call qword [case.0x140051314.0]
movzx edx, word [rsp + 0x28]
mov rcx, rbx
call fcn.140013d90
lea rdx, [0x1400fde54]
mov rcx, rax
call fcn.140049254
movzx edx, word [rsp + 0x2a]
mov rcx, rax
call fcn.140013d90
lea rdx, [0x1400fde54]
mov rcx, rax
call fcn.140049254
movzx edx, word [rsp + 0x2c]
mov rcx, rax
call fcn.140013d90
lea rdx, reloc.OLEAUT32.dll_VariantCopyInd
mov rcx, rax
call fcn.140049254
call fcn.140062924
mov rbx, qword [rax]
mov rax, qword [rbx]
mov rsi, qword [rax + 0x28]
lea rdx, [rsp + 0x470]
lea rcx, [rsp + 0x138]
call fcn.140010e88
or r12d, 1
lea r8, [rsp + 0x470]
mov edx, 3
mov rcx, rbx
mov rax, rsi
call qword [case.0x140051314.0]
lea rcx, [rsp + 0x470]
call fcn.140001a14
call fcn.140062924
mov r9d, 1
mov r8, qword [rax]
lea edx, [r9 + 2]
lea rcx, [rsp + 0x220]
call fcn.14000c39c
nop
lea rbx, [rax + 0x10]
lea rdx, str.Using_log_file:
mov rcx, rbx
call fcn.140015a04
lea rdx, [rsp + 0x430]
cmp qword [rsp + 0x448], 8
cmovae rdx, qword [rsp + 0x430]
mov r8, qword [rsp + 0x440]
mov rcx, rbx
call fcn.140017544
nop
lea rcx, [rsp + 0x2c8]
call fcn.14000c32c
nop
lea rbx, vtable.std::ios_base.0
mov qword [rsp + 0x2c8], rbx
lea rcx, [rsp + 0x2c8]
call fcn.140069b78
nop
lea rcx, [rsp + 0x1b8]
call fcn.14000c878
nop
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1b8]
call fcn.140069b78
nop
xor esi, esi
jmp 0x140060d39
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400f4f28]
call fcn.14008de50
xor esi, esi
test eax, eax
jne 0x140060c9d
or dword [rsp + 0x44], 1
jmp 0x140060d39
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.MOBO
call fcn.14008de50
test eax, eax
jne 0x140060cbc
or dword [rsp + 0x44], 4
jmp 0x140060d39
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.DISPLAY
call fcn.14008de50
test eax, eax
jne 0x140060cdb
or dword [rsp + 0x44], 0x20
jmp 0x140060d39
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400f0910]
call fcn.14008de50
test eax, eax
jne 0x140060cfb
bts dword [rsp + 0x44], 8
jmp 0x140060d39
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400f9770]
call fcn.14008de50
test eax, eax
jne 0x140060d1b
bts dword [rsp + 0x44], 9
jmp 0x140060d39
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.COMPUTERSYSTEM
call fcn.14008de50
test eax, eax
jne 0x140060d41
bts dword [rsp + 0x44], 0x14
inc r14d
jmp 0x140060624
call fcn.1400604a4
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x430]
call fcn.140001a14
nop
lea rcx, [rsp + 0x450]
call fcn.140001a14
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140060d7c
mov rax, qword [rsp + 0x50]
call qword [case.0x140051314.0]
nop
mov eax, ebx
jmp 0x14006101b
call fcn.1400604a4
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x430]
call fcn.140001a14
nop
lea rcx, [rsp + 0x450]
call fcn.140001a14
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140060dbe
mov rax, qword [rsp + 0x50]
call qword [case.0x140051314.0]
nop
mov eax, ebx
jmp 0x14006101b
mov eax, dword [rsp + 0x44]
or edi, 0xffffffff
test eax, eax
cmove eax, edi
mov dword [rsp + 0x44], eax
cmp byte [0x14012a5f0], sil
je 0x140060e29
mov ecx, 2
call fcn.14008e660
mov rcx, rax
lea rdx, str._nNow_start_HW_and_SW_detection_
call fcn.140049600
mov ecx, 2
call fcn.14008e660
mov rcx, rax
lea rdx, str.this_may_take_a_few_seconds._n
call fcn.140049600
mov ecx, 2
call fcn.14008e660
mov rcx, rax
lea rdx, str.Press_Escape_to_cancel._n
call fcn.140049600
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x460], rsi
je 0x140060e59
lea rax, [rsp + 0x450]
cmp qword [rsp + 0x468], 8
cmovae rax, qword [rsp + 0x450]
jmp 0x140060e5c
mov rax, rsi
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140060ed4
call fcn.140062924
mov r9d, 1
mov r8, qword [rax]
lea edx, [r9 + 2]
lea rcx, [rsp + 0x328]
call fcn.14000c39c
nop
lea rbx, [rax + 0x10]
lea rdx, str.Using_out_file:
mov rcx, rbx
call fcn.140015a04
mov rdx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.140015a04
nop
lea rcx, [rsp + 0x3d0]
call fcn.14000c32c
nop
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x3d0], rax
lea rcx, [rsp + 0x3d0]
call fcn.140069b78
nop
jmp 0x140060ef5
call fcn.140062924
mov rcx, qword [rax]
mov rax, qword [rcx]
lea r8, str.Not_using_out_file
mov edx, 3
mov rax, qword [rax + 0x38]
call qword [case.0x140051314.0]
mov byte [rsp + 0x40], r13b
lea rax, vtable.std::_Func_impl_no_alloc_unsigned_long_int____cdecl___void____ptr64___unsigned_long_int__void____ptr64_.0
mov qword [rsp + 0xa8], rax
lea rax, [0x14005fd60]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0xe0], rax
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x78]
call fcn.140065d3c
nop
xor edx, edx
lea rcx, [rsp + 0x78]
call fcn.14006616c
test al, al
jne 0x140060f98
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140065e34
nop
lea rcx, [rsp + 0x430]
call fcn.140001a14
nop
lea rcx, [rsp + 0x450]
call fcn.140001a14
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140060f91
mov rax, qword [rsp + 0x50]
call qword [case.0x140051314.0]
nop
mov eax, ebx
jmp 0x14006101b
mov edx, 0x64
lea rcx, [rsp + 0x78]
call fcn.14006648c
test al, al
jne 0x140060fd4
call fcn.1400938f0
test eax, eax
je 0x140060f98
call fcn.140093684
cmp eax, 0x1b
jne 0x140060f98
mov rcx, qword [rsp + 0x38]
call fcn.140066e78
mov edx, edi
lea rcx, [rsp + 0x78]
call fcn.14006648c
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140065e34
nop
lea rcx, [rsp + 0x430]
call fcn.140001a14
nop
lea rcx, [rsp + 0x450]
call fcn.140001a14
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140061015
mov rax, qword [rsp + 0x50]
call qword [case.0x140051314.0]
nop
mov eax, ebx
jmp 0x14006101b
mov rcx, qword [rsp + 0x490]
xor rcx, rsp
call fcn.14006b800
lea r11, [rsp + 0x4a0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret