Function at 0x140002284
Capabilities:
Accept command line arguments
Check os version
Encode data using xor
Get common file path

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 8], rcx
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x268]
sub rsp, 0x340
mov rsi, rcx
call qword [sym.imp.KERNEL32.dll_GetVersion]
xor r14d, r14d
mov r15d, 1
cmp ax, 6
je 0x1400022f2
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.SetDefaultDllDirectories
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400022f2
mov ecx, 0xc00
call rax
test eax, eax
jne 0x140002392
mov edx, 0x106
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea ecx, [rax - 1]
cmp ecx, 0x103
ja 0x140002392
lea ecx, [rax - 1]
mov r8d, 0x5c
cmp word [rsp + rcx*2 + 0x70], r8w
je 0x14000232d
mov ecx, eax
add eax, r15d
mov word [rsp + rcx*2 + 0x70], r8w
mov dl, byte [str.userenv]
lea rbx, str.userenv
test dl, dl
je 0x140002392
mov eax, eax
lea rdi, [rsp + 0x70]
lea rdi, [rdi + rax*2]
mov rcx, rdi
add rbx, r15
movzx eax, dl
mov dl, byte [rbx]
add rbx, r15
mov word [rcx], ax
lea rcx, [rcx + 2]
test dl, dl
jne 0x14000234f
xor edx, edx
mov dword [rcx], 0x64002e
mov dword [rcx + 4], 0x6c006c
mov word [rcx + 8], r14w
lea rcx, [rsp + 0x70]
lea r8d, [rdx + 8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dl, byte [rbx]
test dl, dl
jne 0x140002349
mov rsi, qword [rbp + 0x270]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
lea r11, [0x14000da00]
mov r8d, r14d
mov r9, r11
mov edx, r8d
mov r10d, 8
mov ecx, edx
mov eax, edx
and ecx, r15d
shr eax, 1
neg ecx
and ecx, 0xedb88320
mov edx, ecx
xor edx, eax
sub r10, r15
jne 0x1400023b0
mov dword [r9], edx
add r8d, r15d
add r9, 4
cmp r8d, 0x100
jb 0x1400023a7
lea r8, [0x14000de00]
mov r9d, 0x700
mov edx, dword [r8 - 0x400]
movzx ecx, dl
shr edx, 8
xor edx, dword [r11 + rcx*4]
mov dword [r8], edx
lea r8, [r8 + 4]
sub r9, r15
jne 0x1400023ea
lea rax, [0x140005fe0]
mov qword [0x14000d9f0], rax
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
call fcn.140002210
mov rbx, rax
lea rdi, [0x14000d580]
movzx eax, word [rax]
jmp 0x14000249c
cmp ax, 0x20
jne 0x14000243e
add rbx, 2
jmp 0x140002499
mov rcx, rbx
call fcn.140002210
cmp word [0x14000d350], 0x2f
mov rbx, rax
mov ecx, r15d
jne 0x140002477
movzx eax, word [0x14000d352]
cmp ax, 0x53
jne 0x1400024d0
cmp word [0x14000d354], r14w
jne 0x140002477
mov dword [0x14000d120], r15d
mov ecx, r14d
test ecx, ecx
je 0x140002499
cmp word [0x14000d130], r14w
jne 0x140002499
lea rdx, [0x14000d350]
lea rcx, [0x14000d130]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
movzx eax, word [rbx]
test ax, ax
jne 0x140002432
cmp word [0x14000d130], r14w
je 0x1400024ec
cmp dword [0x14000d120], r14d
jne 0x14000262c
lea rdx, [0x14000d130]
lea rcx, str.Unsupported_command:
call fcn.14000103c
jmp 0x14000262c
cmp ax, 0x44
jne 0x140002477
cmp word [0x14000d354], 0x3d
jne 0x140002477
lea rdx, [0x14000d356]
mov rcx, rdi
jmp 0x140002493
cmp word [0x14000d580], r14w
jne 0x1400025e6
lea rax, [rsp + 0x30]
mov qword [rsp + 0x30], r14
mov r12d, 0x20019
mov qword [rsp + 0x20], rax
mov r9d, r12d
lea rdx, str.Software7_Zip
xor r8d, r8d
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140002553
mov rcx, qword [rsp + 0x30]
lea rdx, str.Path64
call fcn.1400014e0
mov rcx, qword [rsp + 0x30]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x1400025e6
lea rax, [rsp + 0x38]
mov qword [rsp + 0x38], r14
mov r9d, r12d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400025a2
mov rcx, qword [rsp + 0x38]
lea rdx, str.ProgramFilesDir
call fcn.1400014e0
mov rcx, qword [rsp + 0x38]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x1400025be
lea rdx, [0x14000ac84]
mov r8, rdi
movzx ecx, byte [rdx]
add rdx, r15
mov word [r8], cx
lea r8, [r8 + 2]
test cl, cl
jne 0x1400025ac
mov rcx, rdi
call fcn.140001828
lea rdx, [0x14000a440]
call fcn.140001868
test rax, rax
jne 0x1400025e6
lea rdx, str.7_Zip_
mov rcx, rdi
call fcn.140001000
mov rcx, rdi
call fcn.140001828
cmp dword [0x14000d120], r14d
je 0x140002601
call fcn.1400027f8
jmp 0x14000277e
xor r8d, r8d
mov qword [rsp + 0x20], r14
lea r9, [0x140001940]
mov rcx, rsi
mov ebx, r15d
lea edx, [r8 + 0x64]
call qword [sym.imp.USER32.dll_CreateDialogParamW]
mov qword [0x14000d560], rax
test rax, rax
jne 0x140002634
mov eax, r15d
jmp 0x14000277e
mov rdx, r15
mov rcx, rsi
call qword [sym.imp.USER32.dll_LoadIconW]
mov r8, r15
mov edx, 0x80
mov r9, rax
jmp 0x14000273b
cmp eax, 0xffffffff
je 0x14000277c
mov rcx, qword [0x14000d560]
test rcx, rcx
je 0x14000277c
lea rdx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x14000268e
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_DispatchMessageW]
cmp qword [0x14000d560], r14
je 0x14000277c
cmp dword [0x14000d124], r14d
je 0x140002748
cmp dword [0x14000d12c], r14d
jne 0x140002748
call fcn.1400027f8
mov dword [0x14000d12c], r15d
mov ebx, eax
test eax, eax
jne 0x140002763
mov rcx, qword [0x14000d560]
test rcx, rcx
je 0x14000277c
lea r8, [0x14000ac88]
mov edx, r15d
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
mov rcx, qword [0x14000d560]
mov edx, r15d
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rcx, rax
mov edx, r15d
call qword [sym.imp.USER32.dll_EnableWindow]
mov rcx, qword [0x14000d560]
lea edx, [rbx + 2]
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_EnableWindow]
mov rcx, qword [0x14000d560]
mov edx, r15d
call qword [sym.imp.USER32.dll_GetDlgItem]
mov r9, r15
lea edx, [rbx + 0x28]
mov r8, rax
mov rcx, qword [0x14000d560]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
lea rcx, [rsp + 0x40]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x140002650
mov rcx, qword [0x14000d560]
test rcx, rcx
je 0x14000277c
call qword [sym.imp.USER32.dll_DestroyWindow]
mov qword [0x14000d560], r14
mov eax, ebx
lea r11, [rsp + 0x340]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret