Function at 0x1400028c0
Capabilities:
Accept command line arguments

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0xf0
mov qword [rsp + 0xe8], 0xfffffffffffffffe
mov rbp, rcx
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov r12, rax
call fcn.1400049b0
mov rcx, rax
xor ebx, ebx
mov edx, ebx
test rax, rax
setne dl
test edx, edx
jne 0x140002907
mov ecx, 0x80004005
call fcn.1400017b0
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x128], rax
or rsi, 0xffffffffffffffff
test r12, r12
je 0x140002963
test r12, 0xffffffffffff0000
jne 0x140002950
movzx edi, r12w
mov ecx, edi
call fcn.14000499c
test rax, rax
je 0x140002979
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x128]
call fcn.1400014a0
jmp 0x140002979
xor eax, eax
mov rcx, rsi
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x140002965
mov ecx, ebx
mov r8d, ecx
mov rdx, r12
lea rcx, [rsp + 0x128]
call fcn.1400017d0
nop
mov rdx, qword [rsp + 0x128]
lea rcx, str.Command_Line:_r_n_s_r_n_r_n
call fcn.1400168e8
lea rcx, [rsp + 0x28]
call fcn.140002400
nop
lea r8, [rsp + 0x28]
lea rdx, [0x14002f058]
lea rcx, [rsp + 0xd0]
call fcn.140003bc0
nop
lea r8, [0x14002f058]
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140003af0
nop
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400029e9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x140002a3b
mov rdi, qword [rsp + 0x128]
cmp dword [rdi - 0x10], 0
jl 0x140002a43
mov rcx, rdi
call fcn.140016c04
test rax, rax
je 0x140002a43
sub rax, rdi
sar rax, 1
test eax, eax
jne 0x140002a43
lea r8, [0x14002f2c0]
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x128]
call fcn.1400036f0
mov rdi, qword [rsp + 0x128]
jmp 0x140002a43
mov rdi, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x140002a8b
cmp dword [rdi - 0x10], 0
jl 0x140002a8b
mov rcx, rdi
call fcn.140016c04
test rax, rax
je 0x140002a8b
sub rax, rdi
sar rax, 1
test eax, eax
jne 0x140002a8b
lea r8, [0x14002f2c0]
mov rdx, qword [rsp + 0x28]
lea rcx, [rsp + 0x128]
call fcn.1400036f0
mov rdi, qword [rsp + 0x128]
call fcn.1400049b0
mov r11, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140002aaa
mov ecx, 0x80004005
call fcn.1400017b0
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x138], rax
call fcn.1400049b0
mov r11, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140002ade
mov ecx, 0x80004005
call fcn.1400017b0
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x130], rax
call fcn.1400049b0
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x140002b10
mov ecx, 0x80004005
call fcn.1400017b0
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x20], rax
lea rdx, str.updatesystemdrivers
lea rcx, [rsp + 0xd8]
call fcn.1400018c0
mov rbx, rax
lea r12, [rdi - 0x18]
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0x50], rax
lea r9, [rsp + 0x138]
mov r8, rbx
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.140002530
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x20], rdx
lea rdx, str.restore
lea rcx, [rsp + 0xa0]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x130]
mov r8, rdi
lea rdx, [rsp + 0x60]
mov rcx, rbp
call fcn.140002530
lea rdx, [rsp + 0xe0]
mov qword [rsp + 0x20], rdx
lea rdx, str.difxpreinstall
lea rcx, [rsp + 0xe0]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0x70], rax
lea r9, [rsp + 0x30]
mov r8, rdi
lea rdx, [rsp + 0x70]
mov rcx, rbp
call fcn.140002530
mov rcx, qword [rsp + 0x138]
call fcn.1400169a4
cmp eax, 1
jne 0x140002c20
mov ecx, eax
mov dword [rbp + 0x40], eax
jmp 0x140002c57
mov rcx, qword [rsp + 0x130]
call fcn.1400169a4
cmp eax, 1
jne 0x140002c3b
mov dword [rbp + 0x40], 2
jmp 0x140002c57
mov rcx, qword [rsp + 0x30]
call fcn.1400169a4
mov ecx, 1
mov edx, 3
cmp eax, ecx
cmove ecx, edx
mov dword [rbp + 0x40], ecx
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
lea rdx, str.hwdid
lea rcx, [rsp + 0xb0]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0x80], rax
mov r9, rbp
mov r8, rdi
lea rdx, [rsp + 0x80]
mov rcx, rbp
call fcn.140002530
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rdx
lea rdx, [0x14002f230]
lea rcx, [rsp + 0x40]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0x90], rax
lea r9, [rbp + 8]
mov r8, rdi
lea rdx, [rsp + 0x90]
mov rcx, rbp
call fcn.140002530
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0x20], rdx
lea rdx, str.hkey
lea rcx, [rsp + 0xc0]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0x48], rax
lea r9, [rbp + 0x10]
mov r8, rdi
lea rdx, [rsp + 0x48]
mov rcx, rbp
call fcn.140002530
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x20], rdx
lea rdx, str.regpath
lea rcx, [rsp + 0x58]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0x68], rax
lea r9, [rbp + 0x18]
mov r8, rdi
lea rdx, [rsp + 0x68]
mov rcx, rbp
call fcn.140002530
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x20], rdx
lea rdx, str.regval
lea rcx, [rsp + 0x78]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0x88], rax
lea r9, [rbp + 0x20]
mov r8, rdi
lea rdx, [rsp + 0x88]
mov rcx, rbp
call fcn.140002530
lea rdx, [rsp + 0x98]
mov qword [rsp + 0x20], rdx
lea rdx, str.regvalupnp
lea rcx, [rsp + 0x98]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0xa8], rax
lea r9, [rbp + 0x28]
mov r8, rdi
lea rdx, [rsp + 0xa8]
mov rcx, rbp
call fcn.140002530
lea rdx, [rsp + 0xb8]
mov qword [rsp + 0x20], rdx
lea rdx, str.regvaldifx
lea rcx, [rsp + 0xb8]
call fcn.1400018c0
mov rdi, rax
mov rcx, r12
call fcn.140004150
add rax, 0x18
mov qword [rsp + 0xc8], rax
lea r9, [rbp + 0x30]
mov r8, rdi
lea rdx, [rsp + 0xc8]
mov rcx, rbp
call fcn.140002530
mov rdx, qword [rsp + 0x138]
mov rax, qword [rsp + 0x30]
cmp dword [rdx - 0x10], 0
jg 0x140002ea1
mov rcx, qword [rsp + 0x130]
cmp dword [rcx - 0x10], 0
jg 0x140002ea1
cmp dword [rax - 0x10], 0
jle 0x140002e9c
mov rcx, qword [rbp]
cmp dword [rcx - 0x10], 0
jle 0x140002e9c
mov rcx, qword [rbp + 8]
cmp dword [rcx - 0x10], 0
jg 0x140002ea1
xor dil, dil
jmp 0x140002ea4
mov dil, 1
lea rdx, [rax - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140002ebf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x130]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140002ee2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x138]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140002f05
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140002f25
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140002f45
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [r12 + 0x10], esi
dec esi
test esi, esi
jg 0x140002f5f
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov al, dil
add rsp, 0xf0
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret