Function at 0x14004a3a0
Capabilities:
Persist via windows service
Set registry value

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x68]
sub rsp, 0x140
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x140120678]
xor rax, rsp
mov qword [rbp + 0x30], rax
movzx r15d, dl
mov rdi, rcx
xor r12d, r12d
mov r14d, r12d
mov qword [rsp + 0x58], r12
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_Wow64DisableWow64FsRedirection]
mov qword [rsp + 0x50], r12
mov rsi, 0xffffffff80000001
movdqa xmm0, xmmword [0x1400cbec0]
movdqu xmmword [rbp - 0x68], xmm0
mov word [rbp - 0x78], r12w
mov rdx, qword [str.SOFTWAREHuaweiWUCS]
mov rbx, 0xffffffffffffffff
mov r8, rbx
inc r8
cmp word [rdx + r8*2], r12w
jne 0x14004a421
lea rcx, [rbp - 0x78]
call fcn.140004810
test r15b, r15b
je 0x14004a466
mov rsi, 0xffffffff80000002
mov rdx, qword [str.SYSTEMCurrentControlSetServicesWUCSPROXY]
nop word [rax + rax]
inc rbx
cmp word [rdx + rbx*2], r12w
jne 0x14004a450
mov r8, rbx
lea rcx, [rbp - 0x78]
call fcn.140004810
lea rdx, [rbp - 0x78]
cmp qword [rbp - 0x60], 8
cmovae rdx, qword [rbp - 0x78]
mov qword [rsp + 0x40], r12
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x102
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov esi, eax
test eax, eax
je 0x14004a4ea
movzx ebx, r15b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], eax
lea r9, str.ERROR
lea r8, [0x1400cbd78]
lea rdx, str.__s_____s___0x_lx__open_devtempid_reg__d_failed__ret:_ld_r_n
mov ecx, 3
call fcn.14000afc0
mov r14d, 0x23300021
jmp 0x14004a6c4
lea rcx, [rbp - 0x50]
call fcn.140047e10
mov r8, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x14004a500
mov r8, qword [rdi]
mov r9, qword [rdi + 0x10]
add r9, r8
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x50]
call fcn.140048db0
lea rcx, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae rcx, qword [rsp + 0x68]
mov eax, dword [rsp + 0x78]
add eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
mov rdx, qword [str.DevTempId]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, eax
test eax, eax
je 0x14004a5ee
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], eax
lea r9, str.ERROR
lea r8, [0x1400cbd78]
lea rdx, str.__s_____s___0x_lx__open_devtempid_from_reg_failed__ret:_ld_r_n
mov ecx, 3
call fcn.14000afc0
mov r14d, 0x23300021
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x14004a5cd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a5c8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7ad
call fcn.14009fcc0
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], r12w
lea rcx, [rbp - 0x50]
call fcn.140048110
jmp 0x14004a6c4
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x14004a62f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a62a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7b3
call fcn.14009fcc0
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], r12w
lea rax, vtable.std::wstring_convert_class_std::codecvt_utf8_wchar_t__1114111__0___wchar_t__class_std::allocator_wchar_t___class_std::allocator_char__.0
mov qword [rbp - 0x50], rax
lea rcx, [rbp - 0x10]
call fcn.140002f10
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x14004a691
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a68c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7b9
call fcn.14009fcc0
movdqa xmm0, xmmword [0x1400cbed0]
movdqa xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x30], r12b
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14004a6c4
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, rax
test rax, rax
je 0x14004a6c4
mov rax, qword [rax]
mov edx, 1
call qword [rax]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14004a6d4
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_Wow64RevertWow64FsRedirection]
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x14004a71f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004a71a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004a7a1
call fcn.14009fcc0
movdqa xmm0, xmmword [0x1400cbec0]
movdqu xmmword [rbp - 0x68], xmm0
mov word [rbp - 0x78], r12w
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x14004a767
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x14004a762
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14004a7a7
mov rcx, r8
call fcn.14009fcc0
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov eax, r14d
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.1400a0360
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.1400a47dc
int3
call fcn.1400a47dc
int3
call fcn.1400a47dc
int3
call fcn.1400a47dc
int3
call fcn.1400a47dc
int3