Function at 0x14005e56c
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 [0x140123108]
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.140064db0
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 0x14005edb5
movsxd rbx, r14d
mov rcx, qword [rdi + rbx*8]
call fcn.14008ba84
cmp rax, 2
jae 0x14005e671
call fcn.14005e494
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 0x14005e66a
mov rax, qword [rsp + 0x50]
call qword [case.0x140050ed0.0]
nop
mov eax, ebx
jmp 0x14005f00b
mov rcx, qword [rdi + rbx*8]
movzx eax, word [rcx]
sub ax, 0x2d
mov edx, 0xfffd
test dx, ax
je 0x14005e6c8
call fcn.14005e494
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 0x14005e6c1
mov rax, qword [rsp + 0x50]
call qword [case.0x140050ed0.0]
nop
mov eax, ebx
jmp 0x14005f00b
add rcx, 2
lea rdx, [0x1400cde28]
call fcn.14008be40
test eax, eax
je 0x14005ed73
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.help
call fcn.14008be40
test eax, eax
je 0x14005ed73
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cde3c]
call fcn.14008be40
test eax, eax
je 0x14005ed73
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cde40]
call fcn.14008be40
test eax, eax
je 0x14005e772
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.output
call fcn.14008be40
test eax, eax
je 0x14005e772
lea esi, [r14 + 1]
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.noheader
call fcn.14008be40
test eax, eax
jne 0x14005e849
xor esi, esi
mov r13b, sil
jmp 0x14005ed29
lea esi, [r14 + 1]
cmp esi, r15d
jge 0x14005e74c
movsxd r14, esi
mov rdx, qword [rdi + r14*8]
or r8, 0xffffffffffffffff
cmp word [rdx], 0x22
jne 0x14005e7ab
add rdx, 2
xor ebx, ebx
inc r8
cmp word [rdx + r8*2], bx
jne 0x14005e792
lea rcx, [rsp + 0x450]
call fcn.140001a78
jmp 0x14005e7c4
xor ebx, ebx
inc r8
cmp word [rdx + r8*2], bx
jne 0x14005e7ad
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 0x14005ec62
lea rdx, [rcx - 1]
cmp rdx, rcx
ja 0x14005e829
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 0x14005ec62
lfence
xor r8d, r8d
sub rdx, qword [rsp + 0x460]
lea rcx, [rsp + 0x450]
call fcn.14000f6e0
jmp 0x14005ec62
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cde6c]
call fcn.14008be40
test eax, eax
jne 0x14005e86d
mov byte [0x1401275f0], 1
jmp 0x14005ec62
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cde70]
call fcn.14008be40
test eax, eax
je 0x14005e8a1
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400cde78]
call fcn.14008be40
test eax, eax
jne 0x14005ec69
cmp esi, r15d
jge 0x14005ec69
movsxd r14, esi
mov rdx, qword [rdi + r14*8]
or r8, 0xffffffffffffffff
cmp word [rdx], 0x22
jne 0x14005e8da
add rdx, 2
xor ebx, ebx
inc r8
cmp word [rdx + r8*2], bx
jne 0x14005e8c1
lea rcx, [rsp + 0x430]
call fcn.140001a78
jmp 0x14005e8f3
xor ebx, ebx
inc r8
cmp word [rdx + r8*2], bx
jne 0x14005e8dc
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 0x14005e96c
lea rdx, [rcx - 1]
cmp rdx, rcx
ja 0x14005e951
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 0x14005e96c
lfence
xor r8d, r8d
sub rdx, qword [rsp + 0x440]
lea rcx, [rsp + 0x430]
call fcn.14000f6e0
lea rcx, [rsp + 0x430]
call fcn.140064954
test al, al
je 0x14005e99d
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.1400617c4
mov r8d, 0xa00000
lea rdx, [rsp + 0x430]
lea rcx, [rsp + 0x88]
call fcn.1400614d4
mov rcx, rax
call fcn.1400611dc
lea rcx, [rsp + 0x68]
call fcn.140063cac
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.140063ce0
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x20]
call fcn.14006352c
lea r8d, [rsi - 2]
mov edx, esi
lea rcx, [rsp + 0x120]
call fcn.14000fb00
nop
lea rdx, str.SHIM_START_TIME
lea rcx, [rsp + 0x130]
call fcn.140049274
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.140067c80
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
mov rax, qword [rax]
call qword [case.0x140050ed0.0]
movzx edx, word [rsp + 0x22]
mov rcx, rbx
call fcn.140013db0
lea rdx, [0x1400cde84]
mov rcx, rax
call fcn.140049274
movzx edx, word [rsp + 0x26]
mov rcx, rax
call fcn.140013db0
lea rdx, [0x1400cde84]
mov rcx, rax
call fcn.140049274
mov rbx, rax
lea edx, [rsi + 2]
lea rcx, [rsp + 0xf8]
call fcn.140067c80
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
mov rax, qword [rax]
call qword [case.0x140050ed0.0]
movzx edx, word [rsp + 0x20]
mov rcx, rbx
call fcn.140013db0
lea rdx, [0x1400f24f0]
mov rcx, rax
call fcn.140049274
mov rbx, rax
mov edx, esi
lea rcx, [rsp + 0x108]
call fcn.140067c80
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov rdx, qword [rax + 8]
mov rax, qword [rax]
call qword [case.0x140050ed0.0]
movzx edx, word [rsp + 0x28]
mov rcx, rbx
call fcn.140013db0
lea rdx, [0x1400fbe44]
mov rcx, rax
call fcn.140049274
movzx edx, word [rsp + 0x2a]
mov rcx, rax
call fcn.140013db0
lea rdx, [0x1400fbe44]
mov rcx, rax
call fcn.140049274
movzx edx, word [rsp + 0x2c]
mov rcx, rax
call fcn.140013db0
lea rdx, [0x1400cde80]
mov rcx, rax
call fcn.140049274
call fcn.140060914
mov rbx, qword [rax]
mov rax, qword [rbx]
mov rsi, qword [rax + 0x28]
lea rdx, [rsp + 0x470]
lea rcx, [rsp + 0x138]
call fcn.140010ea8
or r12d, 1
lea r8, [rsp + 0x470]
mov edx, 3
mov rcx, rbx
mov rax, rsi
call qword [case.0x140050ed0.0]
lea rcx, [rsp + 0x470]
call fcn.140001a14
call fcn.140060914
mov r9d, 1
mov r8, qword [rax]
lea edx, [r9 + 2]
lea rcx, [rsp + 0x220]
call fcn.14000c3c0
nop
lea rbx, [rax + 0x10]
lea rdx, str.Using_log_file:
mov rcx, rbx
call fcn.140015a24
lea rdx, [rsp + 0x430]
cmp qword [rsp + 0x448], 8
cmovae rdx, qword [rsp + 0x430]
mov r8, qword [rsp + 0x440]
mov rcx, rbx
call fcn.140017564
nop
lea rcx, [rsp + 0x2c8]
call fcn.14000c350
nop
lea rbx, vtable.std::ios_base.0
mov qword [rsp + 0x2c8], rbx
lea rcx, [rsp + 0x2c8]
call fcn.140067b68
nop
lea rcx, [rsp + 0x1b8]
call fcn.14000c898
nop
mov qword [rsp + 0x1b8], rbx
lea rcx, [rsp + 0x1b8]
call fcn.140067b68
nop
xor esi, esi
jmp 0x14005ed29
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400f2f08]
call fcn.14008be40
xor esi, esi
test eax, eax
jne 0x14005ec8d
or dword [rsp + 0x44], 1
jmp 0x14005ed29
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.MOBO
call fcn.14008be40
test eax, eax
jne 0x14005ecac
or dword [rsp + 0x44], 4
jmp 0x14005ed29
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.DISPLAY
call fcn.14008be40
test eax, eax
jne 0x14005eccb
or dword [rsp + 0x44], 0x20
jmp 0x14005ed29
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400ee8f0]
call fcn.14008be40
test eax, eax
jne 0x14005eceb
bts dword [rsp + 0x44], 8
jmp 0x14005ed29
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, [0x1400f7750]
call fcn.14008be40
test eax, eax
jne 0x14005ed0b
bts dword [rsp + 0x44], 9
jmp 0x14005ed29
mov rcx, qword [rdi + rbx*8]
add rcx, 2
lea rdx, str.COMPUTERSYSTEM
call fcn.14008be40
test eax, eax
jne 0x14005ed31
bts dword [rsp + 0x44], 0x14
inc r14d
jmp 0x14005e614
call fcn.14005e494
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 0x14005ed6c
mov rax, qword [rsp + 0x50]
call qword [case.0x140050ed0.0]
nop
mov eax, ebx
jmp 0x14005f00b
call fcn.14005e494
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 0x14005edae
mov rax, qword [rsp + 0x50]
call qword [case.0x140050ed0.0]
nop
mov eax, ebx
jmp 0x14005f00b
mov eax, dword [rsp + 0x44]
or edi, 0xffffffff
test eax, eax
cmove eax, edi
mov dword [rsp + 0x44], eax
cmp byte [0x1401275f0], sil
je 0x14005ee19
mov ecx, 2
call fcn.14008c650
mov rcx, rax
lea rdx, str._nNow_start_HW_and_SW_detection_
call fcn.140049620
mov ecx, 2
call fcn.14008c650
mov rcx, rax
lea rdx, str.this_may_take_a_few_seconds._n
call fcn.140049620
mov ecx, 2
call fcn.14008c650
mov rcx, rax
lea rdx, str.Press_Escape_to_cancel._n
call fcn.140049620
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x460], rsi
je 0x14005ee49
lea rax, [rsp + 0x450]
cmp qword [rsp + 0x468], 8
cmovae rax, qword [rsp + 0x450]
jmp 0x14005ee4c
mov rax, rsi
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14005eec4
call fcn.140060914
mov r9d, 1
mov r8, qword [rax]
lea edx, [r9 + 2]
lea rcx, [rsp + 0x328]
call fcn.14000c3c0
nop
lea rbx, [rax + 0x10]
lea rdx, str.Using_out_file:
mov rcx, rbx
call fcn.140015a24
mov rdx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.140015a24
nop
lea rcx, [rsp + 0x3d0]
call fcn.14000c350
nop
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x3d0], rax
lea rcx, [rsp + 0x3d0]
call fcn.140067b68
nop
jmp 0x14005eee5
call fcn.140060914
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.0x140050ed0.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, [0x14005dd50]
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.140063d2c
nop
xor edx, edx
lea rcx, [rsp + 0x78]
call fcn.14006415c
test al, al
jne 0x14005ef88
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140063e24
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 0x14005ef81
mov rax, qword [rsp + 0x50]
call qword [case.0x140050ed0.0]
nop
mov eax, ebx
jmp 0x14005f00b
mov edx, 0x64
lea rcx, [rsp + 0x78]
call fcn.14006447c
test al, al
jne 0x14005efc4
call fcn.1400918e0
test eax, eax
je 0x14005ef88
call fcn.140091674
cmp eax, 0x1b
jne 0x14005ef88
mov rcx, qword [rsp + 0x38]
call fcn.140064e68
mov edx, edi
lea rcx, [rsp + 0x78]
call fcn.14006447c
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.140063e24
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 0x14005f005
mov rax, qword [rsp + 0x50]
call qword [case.0x140050ed0.0]
nop
mov eax, ebx
jmp 0x14005f00b
mov rcx, qword [rsp + 0x490]
xor rcx, rsp
call fcn.1400697f0
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