Function at 0x14001f550
Capabilities:
Authenticate hmac
Delete registry key
Encode data using xor
Parse pe header

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x140034040]
xor rax, rsp
mov qword [rbp + 0xa8], rax
mov rdi, rcx
xor r15d, r15d
xor edx, edx
mov cl, 0x6e
call fcn.140001e60
mov byte [rsp + 0x60], al
lea edx, [r15 + 1]
mov cl, 0x74
call fcn.140001e60
mov byte [rsp + 0x61], al
lea edx, [r15 + 2]
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x62], al
lea edx, [r15 + 3]
mov cl, 0x6c
call fcn.140001e60
mov byte [rsp + 0x63], al
lea edx, [r15 + 4]
call fcn.140001e60
mov byte [rsp + 0x64], al
lea edx, [r15 + 5]
mov cl, 0x2e
call fcn.140001e60
mov byte [rsp + 0x65], al
lea edx, [r15 + 6]
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x66], al
lea edx, [r15 + 7]
mov cl, 0x6c
call fcn.140001e60
mov byte [rsp + 0x67], al
lea edx, [r15 + 8]
call fcn.140001e60
mov byte [rsp + 0x68], al
xor eax, eax
mov byte [rsp + 0x69], al
mov edx, r15d
nop dword [rax]
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rsp + 0x60]
add rcx, rax
lea eax, [rdx + 0x13]
xor byte [rcx], al
inc edx
cmp edx, 9
jb 0x14001f620
mov byte [rsp + 0x69], r15b
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r14, rax
test rax, rax
je 0x140020c92
mov ecx, 0x5c
xor edx, edx
call fcn.140001e70
mov word [rsp + 0x70], ax
mov ecx, 0x52
lea edx, [rcx - 0x51]
call fcn.140001e70
mov word [rsp + 0x72], ax
mov ecx, 0x65
lea edx, [rcx - 0x63]
call fcn.140001e70
mov word [rsp + 0x74], ax
mov ecx, 0x67
lea edx, [rcx - 0x64]
call fcn.140001e70
mov word [rsp + 0x76], ax
mov ecx, 0x69
lea edx, [rcx - 0x65]
call fcn.140001e70
mov word [rsp + 0x78], ax
mov ecx, 0x73
lea edx, [rcx - 0x6e]
call fcn.140001e70
mov word [rsp + 0x7a], ax
mov ecx, 0x74
lea edx, [rcx - 0x6e]
call fcn.140001e70
mov word [rsp + 0x7c], ax
mov ecx, 0x72
lea edx, [rcx - 0x6b]
call fcn.140001e70
mov word [rsp + 0x7e], ax
mov ecx, 0x79
lea edx, [rcx - 0x71]
call fcn.140001e70
mov word [rbp - 0x80], ax
mov ecx, 0x5c
lea edx, [rcx - 0x53]
call fcn.140001e70
mov word [rbp - 0x7e], ax
mov ecx, 0x4d
lea edx, [rcx - 0x43]
call fcn.140001e70
mov word [rbp - 0x7c], ax
mov ecx, 0x61
lea edx, [rcx - 0x56]
call fcn.140001e70
mov word [rbp - 0x7a], ax
mov ecx, 0x63
lea edx, [rcx - 0x57]
call fcn.140001e70
mov word [rbp - 0x78], ax
mov ecx, 0x68
lea edx, [rcx - 0x5b]
call fcn.140001e70
mov word [rbp - 0x76], ax
mov ecx, 0x69
lea edx, [rcx - 0x5b]
call fcn.140001e70
mov word [rbp - 0x74], ax
mov ecx, 0x6e
lea edx, [rcx - 0x5f]
call fcn.140001e70
mov word [rbp - 0x72], ax
mov ecx, 0x65
lea edx, [rcx - 0x55]
call fcn.140001e70
mov word [rbp - 0x70], ax
mov ecx, 0x5c
lea edx, [rcx - 0x4b]
call fcn.140001e70
mov word [rbp - 0x6e], ax
mov ecx, 0x53
lea edx, [rcx - 0x41]
call fcn.140001e70
mov word [rbp - 0x6c], ax
mov ecx, 0x79
lea edx, [rcx - 0x66]
call fcn.140001e70
mov word [rbp - 0x6a], ax
mov ecx, 0x73
lea edx, [rcx - 0x5f]
call fcn.140001e70
mov word [rbp - 0x68], ax
mov ecx, 0x74
lea edx, [rcx - 0x5f]
call fcn.140001e70
mov word [rbp - 0x66], ax
mov ecx, 0x65
lea edx, [rcx - 0x4f]
call fcn.140001e70
mov word [rbp - 0x64], ax
mov ecx, 0x6d
lea edx, [rcx - 0x56]
call fcn.140001e70
mov word [rbp - 0x62], ax
mov ecx, 0x5c
lea edx, [rcx - 0x44]
call fcn.140001e70
mov word [rbp - 0x60], ax
mov ecx, 0x43
lea edx, [rcx - 0x2a]
call fcn.140001e70
mov word [rbp - 0x5e], ax
mov ecx, 0x75
lea edx, [rcx - 0x5b]
call fcn.140001e70
mov word [rbp - 0x5c], ax
mov ecx, 0x72
lea edx, [rcx - 0x57]
call fcn.140001e70
mov word [rbp - 0x5a], ax
mov ecx, 0x72
lea edx, [rcx - 0x56]
call fcn.140001e70
mov word [rbp - 0x58], ax
mov ecx, 0x65
lea edx, [rcx - 0x48]
call fcn.140001e70
mov word [rbp - 0x56], ax
mov ecx, 0x6e
lea edx, [rcx - 0x50]
call fcn.140001e70
mov word [rbp - 0x54], ax
mov ecx, 0x74
lea edx, [rcx - 0x55]
call fcn.140001e70
mov word [rbp - 0x52], ax
mov ecx, 0x43
lea edx, [rcx - 0x23]
call fcn.140001e70
mov word [rbp - 0x50], ax
mov ecx, 0x6f
lea edx, [rcx - 0x4e]
call fcn.140001e70
mov word [rbp - 0x4e], ax
mov ecx, 0x6e
lea edx, [rcx - 0x4c]
call fcn.140001e70
mov word [rbp - 0x4c], ax
mov ecx, 0x74
lea edx, [rcx - 0x51]
call fcn.140001e70
mov word [rbp - 0x4a], ax
mov ecx, 0x72
lea edx, [rcx - 0x4e]
call fcn.140001e70
mov word [rbp - 0x48], ax
mov ecx, 0x6f
lea edx, [rcx - 0x4a]
call fcn.140001e70
mov word [rbp - 0x46], ax
mov ecx, 0x6c
lea edx, [rcx - 0x46]
call fcn.140001e70
mov word [rbp - 0x44], ax
mov ecx, 0x53
lea edx, [rcx - 0x2c]
call fcn.140001e70
mov word [rbp - 0x42], ax
mov ecx, 0x65
lea edx, [rcx - 0x3d]
call fcn.140001e70
mov word [rbp - 0x40], ax
mov ecx, 0x74
lea edx, [rcx - 0x4b]
call fcn.140001e70
mov word [rbp - 0x3e], ax
mov ecx, 0x5c
lea edx, [rcx - 0x32]
call fcn.140001e70
mov word [rbp - 0x3c], ax
mov ecx, 0x53
lea edx, [rcx - 0x28]
call fcn.140001e70
mov word [rbp - 0x3a], ax
mov ecx, 0x65
lea edx, [rcx - 0x39]
call fcn.140001e70
mov word [rbp - 0x38], ax
mov ecx, 0x72
lea edx, [rcx - 0x45]
call fcn.140001e70
mov word [rbp - 0x36], ax
mov ecx, 0x76
lea edx, [rcx - 0x48]
call fcn.140001e70
mov word [rbp - 0x34], ax
mov ecx, 0x69
lea edx, [rcx - 0x3a]
call fcn.140001e70
mov word [rbp - 0x32], ax
mov ecx, 0x63
lea edx, [rcx - 0x33]
call fcn.140001e70
mov word [rbp - 0x30], ax
mov ecx, 0x65
lea edx, [rcx - 0x34]
call fcn.140001e70
mov word [rbp - 0x2e], ax
mov ecx, 0x73
lea edx, [rcx - 0x41]
call fcn.140001e70
mov word [rbp - 0x2c], ax
mov ecx, 0x5c
lea edx, [rcx - 0x29]
call fcn.140001e70
mov word [rbp - 0x2a], ax
xor ecx, ecx
lea edx, [rcx + 0x34]
call fcn.140001e70
mov word [rbp - 0x28], ax
mov edx, 0x35
movzx ecx, word [0x14002f5fa]
call fcn.140001e70
mov word [rbp - 0x26], ax
mov edx, 0x36
movzx ecx, word [0x14002f5fc]
call fcn.140001e70
mov word [rbp - 0x24], ax
mov edx, 0x37
movzx ecx, word [0x14002f5fe]
call fcn.140001e70
mov word [rbp - 0x22], ax
mov edx, 0x38
movzx ecx, word [0x14002f600]
call fcn.140001e70
mov word [rbp - 0x20], ax
mov edx, 0x39
movzx ecx, word [0x14002f602]
call fcn.140001e70
mov word [rbp - 0x1e], ax
mov edx, 0x3a
movzx ecx, word [0x14002f604]
call fcn.140001e70
mov word [rbp - 0x1c], ax
mov edx, 0x3b
movzx ecx, word [0x14002f606]
call fcn.140001e70
mov word [rbp - 0x1a], ax
mov edx, 0x3c
movzx ecx, word [0x14002f608]
call fcn.140001e70
mov word [rbp - 0x18], ax
mov edx, 0x3d
movzx ecx, word [0x14002f60a]
call fcn.140001e70
mov word [rbp - 0x16], ax
mov edx, 0x3e
movzx ecx, word [0x14002f60c]
call fcn.140001e70
mov word [rbp - 0x14], ax
mov edx, 0x3f
movzx ecx, word [0x14002f60e]
call fcn.140001e70
mov word [rbp - 0x12], ax
mov edx, 0x40
movzx ecx, word [0x14002f610]
call fcn.140001e70
mov word [rbp - 0x10], ax
mov edx, 0x41
movzx ecx, word [0x14002f612]
call fcn.140001e70
mov word [rbp - 0xe], ax
mov edx, 0x42
movzx ecx, word [0x14002f614]
call fcn.140001e70
mov word [rbp - 0xc], ax
mov edx, 0x43
movzx ecx, word [0x14002f616]
call fcn.140001e70
mov word [rbp - 0xa], ax
mov edx, 0x44
movzx ecx, word [0x14002f618]
call fcn.140001e70
mov word [rbp - 8], ax
mov edx, 0x45
movzx ecx, word [0x14002f61a]
call fcn.140001e70
mov word [rbp - 6], ax
mov edx, 0x46
movzx ecx, word [0x14002f61c]
call fcn.140001e70
mov word [rbp - 4], ax
mov edx, 0x47
movzx ecx, word [0x14002f61e]
call fcn.140001e70
mov word [rbp - 2], ax
mov edx, 0x48
movzx ecx, word [0x14002f620]
call fcn.140001e70
mov word [rbp], ax
mov edx, 0x49
movzx ecx, word [0x14002f622]
call fcn.140001e70
mov word [rbp + 2], ax
mov edx, 0x4a
movzx ecx, word [0x14002f624]
call fcn.140001e70
mov word [rbp + 4], ax
mov edx, 0x4b
movzx ecx, word [0x14002f626]
call fcn.140001e70
mov word [rbp + 6], ax
mov edx, 0x4c
movzx ecx, word [0x14002f628]
call fcn.140001e70
mov word [rbp + 8], ax
mov edx, 0x4d
movzx ecx, word [0x14002f62a]
call fcn.140001e70
mov word [rbp + 0xa], ax
mov edx, 0x4e
movzx ecx, word [0x14002f62c]
call fcn.140001e70
mov word [rbp + 0xc], ax
mov edx, 0x4f
movzx ecx, word [0x14002f62e]
call fcn.140001e70
mov word [rbp + 0xe], ax
mov edx, 0x50
movzx ecx, word [0x14002f630]
call fcn.140001e70
mov word [rbp + 0x10], ax
mov edx, 0x51
movzx ecx, word [0x14002f632]
call fcn.140001e70
mov word [rbp + 0x12], ax
mov edx, 0x52
movzx ecx, word [0x14002f634]
call fcn.140001e70
mov word [rbp + 0x14], ax
mov edx, 0x53
movzx ecx, word [0x14002f636]
call fcn.140001e70
mov word [rbp + 0x16], ax
mov edx, 0x54
movzx ecx, word [0x14002f638]
call fcn.140001e70
mov word [rbp + 0x18], ax
mov edx, 0x55
movzx ecx, word [0x14002f63a]
call fcn.140001e70
mov word [rbp + 0x1a], ax
mov edx, 0x56
movzx ecx, word [0x14002f63c]
call fcn.140001e70
mov word [rbp + 0x1c], ax
mov edx, 0x57
movzx ecx, word [0x14002f63e]
call fcn.140001e70
mov word [rbp + 0x1e], ax
mov edx, 0x58
movzx ecx, word [0x14002f640]
call fcn.140001e70
mov word [rbp + 0x20], ax
mov edx, 0x59
movzx ecx, word [0x14002f642]
call fcn.140001e70
mov word [rbp + 0x22], ax
mov edx, 0x5a
movzx ecx, word [0x14002f644]
call fcn.140001e70
mov word [rbp + 0x24], ax
mov edx, 0x5b
movzx ecx, word [0x14002f646]
call fcn.140001e70
mov word [rbp + 0x26], ax
mov edx, 0x5c
movzx ecx, word [0x14002f648]
call fcn.140001e70
mov word [rbp + 0x28], ax
mov edx, 0x5d
movzx ecx, word [0x14002f64a]
call fcn.140001e70
mov word [rbp + 0x2a], ax
mov edx, 0x5e
movzx ecx, word [0x14002f64c]
call fcn.140001e70
mov word [rbp + 0x2c], ax
mov edx, 0x5f
movzx ecx, word [0x14002f64e]
call fcn.140001e70
mov word [rbp + 0x2e], ax
mov edx, 0x60
movzx ecx, word [0x14002f650]
call fcn.140001e70
mov word [rbp + 0x30], ax
mov edx, 0x61
movzx ecx, word [0x14002f652]
call fcn.140001e70
mov word [rbp + 0x32], ax
mov edx, 0x62
movzx ecx, word [0x14002f654]
call fcn.140001e70
mov word [rbp + 0x34], ax
mov edx, 0x63
movzx ecx, word [0x14002f656]
call fcn.140001e70
mov word [rbp + 0x36], ax
mov edx, 0x64
movzx ecx, word [0x14002f658]
call fcn.140001e70
mov word [rbp + 0x38], ax
mov edx, 0x65
movzx ecx, word [0x14002f65a]
call fcn.140001e70
mov word [rbp + 0x3a], ax
mov edx, 0x66
movzx ecx, word [0x14002f65c]
call fcn.140001e70
mov word [rbp + 0x3c], ax
mov edx, 0x67
movzx ecx, word [0x14002f65e]
call fcn.140001e70
mov word [rbp + 0x3e], ax
mov edx, 0x68
movzx ecx, word [0x14002f660]
call fcn.140001e70
mov word [rbp + 0x40], ax
xor eax, eax
mov word [rbp + 0x42], ax
mov edx, r15d
mov r12d, 0x133
nop
movsxd rax, edx
lea rcx, [rsp + 0x70]
lea rcx, [rcx + rax*2]
lea eax, [r12 + rdx]
xor word [rcx], ax
inc edx
cmp edx, 0x69
jb 0x14001fe30
mov word [rbp + 0x42], r15w
lea rax, [rsp + 0x70]
mov rbx, 0xffffffffffffffff
mov rcx, rbx
nop
inc rcx
cmp word [rax + rcx*2], r15w
jne 0x14001fe60
mov rdx, qword [rdi + 0x10]
movabs rsi, 0x7ffffffffffffffe
mov rax, rsi
sub rax, rdx
cmp rax, rcx
jb 0x140020cc3
mov rax, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14001fe94
mov rax, qword [rdi]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x70]
lea rcx, [rbp + 0x78]
call fcn.140016500
nop
lea rdx, [rbp + 0x78]
cmp qword [rbp + 0x90], 7
cmova rdx, qword [rbp + 0x78]
lea rcx, [rbp + 0x98]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
mov ecx, 0x53
xor edx, edx
call fcn.140001e70
mov word [rsp + 0x70], ax
mov ecx, 0x59
lea edx, [rcx - 0x58]
call fcn.140001e70
mov word [rsp + 0x72], ax
mov ecx, 0x53
lea edx, [rcx - 0x51]
call fcn.140001e70
mov word [rsp + 0x74], ax
mov ecx, 0x54
lea edx, [rcx - 0x51]
call fcn.140001e70
mov word [rsp + 0x76], ax
mov ecx, 0x45
lea edx, [rcx - 0x41]
call fcn.140001e70
mov word [rsp + 0x78], ax
mov ecx, 0x4d
lea edx, [rcx - 0x48]
call fcn.140001e70
mov word [rsp + 0x7a], ax
mov ecx, 0x5c
lea edx, [rcx - 0x56]
call fcn.140001e70
mov word [rsp + 0x7c], ax
mov ecx, 0x43
lea edx, [rcx - 0x3c]
call fcn.140001e70
mov word [rsp + 0x7e], ax
mov ecx, 0x75
lea edx, [rcx - 0x6d]
call fcn.140001e70
mov word [rbp - 0x80], ax
mov ecx, 0x72
lea edx, [rcx - 0x69]
call fcn.140001e70
mov word [rbp - 0x7e], ax
mov ecx, 0x72
lea edx, [rcx - 0x68]
call fcn.140001e70
mov word [rbp - 0x7c], ax
mov ecx, 0x65
lea edx, [rcx - 0x5a]
call fcn.140001e70
mov word [rbp - 0x7a], ax
mov ecx, 0x6e
lea edx, [rcx - 0x62]
call fcn.140001e70
mov word [rbp - 0x78], ax
mov ecx, 0x74
lea edx, [rcx - 0x67]
call fcn.140001e70
mov word [rbp - 0x76], ax
mov ecx, 0x43
lea edx, [rcx - 0x35]
call fcn.140001e70
mov word [rbp - 0x74], ax
mov ecx, 0x6f
lea edx, [rcx - 0x60]
call fcn.140001e70
mov word [rbp - 0x72], ax
mov ecx, 0x6e
lea edx, [rcx - 0x5e]
call fcn.140001e70
mov word [rbp - 0x70], ax
mov ecx, 0x74
lea edx, [rcx - 0x63]
call fcn.140001e70
mov word [rbp - 0x6e], ax
mov ecx, 0x72
lea edx, [rcx - 0x60]
call fcn.140001e70
mov word [rbp - 0x6c], ax
mov ecx, 0x6f
lea edx, [rcx - 0x5c]
call fcn.140001e70
mov word [rbp - 0x6a], ax
mov ecx, 0x6c
lea edx, [rcx - 0x58]
call fcn.140001e70
mov word [rbp - 0x68], ax
mov ecx, 0x53
lea edx, [rcx - 0x3e]
call fcn.140001e70
mov word [rbp - 0x66], ax
mov ecx, 0x65
lea edx, [rcx - 0x4f]
call fcn.140001e70
mov word [rbp - 0x64], ax
mov ecx, 0x74
lea edx, [rcx - 0x5d]
call fcn.140001e70
mov word [rbp - 0x62], ax
mov ecx, 0x5c
lea edx, [rcx - 0x44]
call fcn.140001e70
mov word [rbp - 0x60], ax
mov ecx, 0x53
lea edx, [rcx - 0x3a]
call fcn.140001e70
mov word [rbp - 0x5e], ax
mov ecx, 0x65
lea edx, [rcx - 0x4b]
call fcn.140001e70
mov word [rbp - 0x5c], ax
mov ecx, 0x72
lea edx, [rcx - 0x57]
call fcn.140001e70
mov word [rbp - 0x5a], ax
mov ecx, 0x76
lea edx, [rcx - 0x5a]
call fcn.140001e70
mov word [rbp - 0x58], ax
mov ecx, 0x69
lea edx, [rcx - 0x4c]
call fcn.140001e70
mov word [rbp - 0x56], ax
mov ecx, 0x63
lea edx, [rcx - 0x45]
call fcn.140001e70
mov word [rbp - 0x54], ax
mov ecx, 0x65
lea edx, [rcx - 0x46]
call fcn.140001e70
mov word [rbp - 0x52], ax
mov ecx, 0x73
lea edx, [rcx - 0x53]
call fcn.140001e70
mov word [rbp - 0x50], ax
mov ecx, 0x5c
lea edx, [rcx - 0x3b]
call fcn.140001e70
mov word [rbp - 0x4e], ax
xor ecx, ecx
lea edx, [rcx + 0x22]
call fcn.140001e70
mov word [rbp - 0x4c], ax
mov edx, 0x23
movzx ecx, word [0x14002f556]
call fcn.140001e70
mov word [rbp - 0x4a], ax
mov edx, 0x24
movzx ecx, word [0x14002f558]
call fcn.140001e70
mov word [rbp - 0x48], ax
mov edx, 0x25
movzx ecx, word [0x14002f55a]
call fcn.140001e70
mov word [rbp - 0x46], ax
mov edx, 0x26
movzx ecx, word [0x14002f55c]
call fcn.140001e70
mov word [rbp - 0x44], ax
mov edx, 0x27
movzx ecx, word [0x14002f55e]
call fcn.140001e70
mov word [rbp - 0x42], ax
mov edx, 0x28
movzx ecx, word [0x14002f560]
call fcn.140001e70
mov word [rbp - 0x40], ax
mov edx, 0x29
movzx ecx, word [0x14002f562]
call fcn.140001e70
mov word [rbp - 0x3e], ax
mov edx, 0x2a
movzx ecx, word [0x14002f564]
call fcn.140001e70
mov word [rbp - 0x3c], ax
mov edx, 0x2b
movzx ecx, word [0x14002f566]
call fcn.140001e70
mov word [rbp - 0x3a], ax
mov edx, 0x2c
movzx ecx, word [str.ImagePath]
call fcn.140001e70
mov word [rbp - 0x38], ax
mov edx, 0x2d
movzx ecx, word [0x14002f56a]
call fcn.140001e70
mov word [rbp - 0x36], ax
mov edx, 0x2e
movzx ecx, word [0x14002f56c]
call fcn.140001e70
mov word [rbp - 0x34], ax
mov edx, 0x2f
movzx ecx, word [0x14002f56e]
call fcn.140001e70
mov word [rbp - 0x32], ax
mov edx, 0x30
movzx ecx, word [0x14002f570]
call fcn.140001e70
mov word [rbp - 0x30], ax
mov edx, 0x31
movzx ecx, word [0x14002f572]
call fcn.140001e70
mov word [rbp - 0x2e], ax
mov edx, 0x32
movzx ecx, word [0x14002f574]
call fcn.140001e70
mov word [rbp - 0x2c], ax
mov edx, 0x33
movzx ecx, word [0x14002f576]
call fcn.140001e70
mov word [rbp - 0x2a], ax
mov edx, 0x34
movzx ecx, word [0x14002f578]
call fcn.140001e70
mov word [rbp - 0x28], ax
mov edx, 0x35
movzx ecx, word [0x14002f57a]
call fcn.140001e70
mov word [rbp - 0x26], ax
mov edx, 0x36
movzx ecx, word [0x14002f57c]
call fcn.140001e70
mov word [rbp - 0x24], ax
mov edx, 0x37
movzx ecx, word [0x14002f57e]
call fcn.140001e70
mov word [rbp - 0x22], ax
mov edx, 0x38
movzx ecx, word [str.Type]
call fcn.140001e70
mov word [rbp - 0x20], ax
mov edx, 0x39
movzx ecx, word [0x14002f582]
call fcn.140001e70
mov word [rbp - 0x1e], ax
mov edx, 0x3a
movzx ecx, word [0x14002f584]
call fcn.140001e70
mov word [rbp - 0x1c], ax
mov edx, 0x3b
movzx ecx, word [0x14002f586]
call fcn.140001e70
mov word [rbp - 0x1a], ax
mov edx, 0x3c
movzx ecx, word [0x14002f588]
call fcn.140001e70
mov word [rbp - 0x18], ax
mov edx, 0x3d
movzx ecx, word [0x14002f58a]
call fcn.140001e70
mov word [rbp - 0x16], ax
mov edx, 0x3e
movzx ecx, word [0x14002f58c]
call fcn.140001e70
mov word [rbp - 0x14], ax
mov edx, 0x3f
movzx ecx, word [0x14002f58e]
call fcn.140001e70
mov word [rbp - 0x12], ax
mov edx, 0x40
movzx ecx, word [str.RegistryMachineSystemCurrentControlSetServices_]
call fcn.140001e70
mov word [rbp - 0x10], ax
mov edx, 0x41
movzx ecx, word [0x14002f592]
call fcn.140001e70
mov word [rbp - 0xe], ax
mov edx, 0x42
movzx ecx, word [0x14002f594]
call fcn.140001e70
mov word [rbp - 0xc], ax
mov edx, 0x43
movzx ecx, word [0x14002f596]
call fcn.140001e70
mov word [rbp - 0xa], ax
mov edx, 0x44
movzx ecx, word [0x14002f598]
call fcn.140001e70
mov word [rbp - 8], ax
xor eax, eax
mov word [rbp - 6], ax
mov edx, r15d
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rsp + 0x70]
lea rcx, [rcx + rax*2]
lea eax, [r12 + rdx]
xor word [rcx], ax
inc edx
cmp edx, 0x45
jb 0x140020400
mov word [rbp - 6], r15w
lea rax, [rsp + 0x70]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x140020424
mov rax, qword [rdi + 0x10]
sub rsi, rax
cmp rsi, rbx
jb 0x140020cbd
cmp qword [rdi + 0x18], 7
jbe 0x140020448
mov rdi, qword [rdi]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x70]
lea rcx, [rbp + 0x58]
call fcn.140016500
nop
lea rdx, [rbp + 0x58]
cmp qword [rbp + 0x70], 7
cmova rdx, qword [rbp + 0x58]
lea r8, [rbp + 0x50]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
je 0x140020494
cmp eax, 2
sete bl
jmp 0x140020bf4
mov rcx, qword [rbp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edx, edx
mov cl, 0x4e
call fcn.140001e60
mov byte [rsp + 0x40], al
mov edx, 1
mov cl, 0x74
call fcn.140001e60
mov byte [rsp + 0x41], al
mov edx, 2
mov cl, 0x55
call fcn.140001e60
mov byte [rsp + 0x42], al
mov edx, 3
mov cl, 0x6e
call fcn.140001e60
mov byte [rsp + 0x43], al
mov edx, 4
mov cl, 0x6c
call fcn.140001e60
mov byte [rsp + 0x44], al
mov edx, 5
mov cl, 0x6f
call fcn.140001e60
mov byte [rsp + 0x45], al
mov edx, 6
mov cl, 0x61
call fcn.140001e60
mov byte [rsp + 0x46], al
mov edx, 7
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x47], al
mov edx, 8
mov cl, 0x44
call fcn.140001e60
mov byte [rsp + 0x48], al
mov edx, 9
mov cl, 0x72
call fcn.140001e60
mov byte [rsp + 0x49], al
mov edx, 0xa
mov cl, 0x69
call fcn.140001e60
mov byte [rsp + 0x4a], al
mov edx, 0xb
mov cl, 0x76
call fcn.140001e60
mov byte [rsp + 0x4b], al
mov edx, 0xc
mov cl, 0x65
call fcn.140001e60
mov byte [rsp + 0x4c], al
mov edx, 0xd
mov cl, 0x72
call fcn.140001e60
mov byte [rsp + 0x4d], al
xor eax, eax
mov byte [rsp + 0x4e], al
mov edx, r15d
nop dword [rax]
nop dword [rax + rax]
movsxd rax, edx
lea rcx, [rsp + 0x40]
add rcx, rax
lea eax, [rdx + 0x13]
xor byte [rcx], al
inc edx
cmp edx, 0xe
jb 0x140020590
mov byte [rsp + 0x4e], 0
lea rdx, [rsp + 0x40]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [rbp + 0x98]
call rax
mov ebx, eax
xor edx, edx
mov cl, 0x20
call fcn.140001e60
mov byte [rsp + 0x40], al
mov edx, 1
mov cl, 0x5b
call fcn.140001e60
mov byte [rsp + 0x41], al
mov edx, 2
mov cl, 0x2b
call fcn.140001e60
mov byte [rsp + 0x42], al
mov edx, 3
mov cl, 0x5d
call fcn.140001e60
mov byte [rsp + 0x43], al
mov edx, 4
mov cl, 0x20
call fcn.140001e60
mov byte [rsp + 0x44], al
mov edx, 5
mov cl, 0x4e
call fcn.140001e60
mov byte [rsp + 0x45], al
mov edx, 6
mov cl, 0x74
call fcn.140001e60
mov byte [rsp + 0x46], al
mov edx, 7
mov cl, 0x55
call fcn.140001e60
mov byte [rsp + 0x47], al
mov edx, 8
mov cl, 0x6e
call fcn.140001e60
mov byte [rsp + 0x48], al
mov edx, 9
mov cl, 0x6c
call fcn.140001e60
mov byte [rsp + 0x49], al
mov edx, 0xa
mov cl, 0x6f
call fcn.140001e60
mov byte [rsp + 0x4a], al
mov edx, 0xb
mov cl, 0x61
call fcn.140001e60
mov byte [rsp + 0x4b], al
mov edx, 0xc
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x4c], al
mov edx, 0xd
mov cl, 0x44
call fcn.140001e60
mov byte [rsp + 0x4d], al
mov edx, 0xe
mov cl, 0x72
call fcn.140001e60
mov byte [rsp + 0x4e], al
mov edx, 0xf
mov cl, 0x69
call fcn.140001e60
mov byte [rsp + 0x4f], al
mov edx, 0x10
mov cl, 0x76
call fcn.140001e60
mov byte [rsp + 0x50], al
mov edx, 0x11
mov cl, 0x65
call fcn.140001e60
mov byte [rsp + 0x51], al
mov edx, 0x12
mov cl, 0x72
call fcn.140001e60
mov byte [rsp + 0x52], al
mov edx, 0x13
mov cl, 0x20
call fcn.140001e60
mov byte [rsp + 0x53], al
mov edx, 0x14
mov cl, 0x53
call fcn.140001e60
mov byte [rsp + 0x54], al
mov edx, 0x15
mov cl, 0x74
call fcn.140001e60
mov byte [rsp + 0x55], al
mov edx, 0x16
mov cl, 0x61
call fcn.140001e60
mov byte [rsp + 0x56], al
mov edx, 0x17
mov cl, 0x74
call fcn.140001e60
mov byte [rsp + 0x57], al
mov edx, 0x18
mov cl, 0x75
call fcn.140001e60
mov byte [rsp + 0x58], al
mov edx, 0x19
mov cl, 0x73
call fcn.140001e60
mov byte [rsp + 0x59], al
mov edx, 0x1a
mov cl, 0x20
call fcn.140001e60
mov byte [rsp + 0x5a], al
mov edx, 0x1b
mov cl, 0x30
call fcn.140001e60
mov byte [rsp + 0x5b], al
mov edx, 0x1c
mov cl, 0x78
call fcn.140001e60
mov byte [rsp + 0x5c], al
xor eax, eax
mov byte [rsp + 0x5d], al
mov r8d, r15d
nop dword [rax + rax]
movsxd rax, r8d
lea rdx, [rsp + 0x40]
add rdx, rax
lea eax, [r8 + 0x13]
xor byte [rdx], al
inc r8d
cmp r8d, 0x1d
jb 0x1400207a0
mov byte [rsp + 0x5d], 0
lea rdx, [rsp + 0x40]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.140014f70
lea rdx, [0x14000e600]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov edx, ebx
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___long_int____ptr64]
lea rdx, [0x14000d5d0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
xor edx, edx
mov cl, 0x20
call fcn.140001e60
movzx r8d, al
mov edx, 1
mov cl, 0x5b
call fcn.140001e60
movzx r9d, al
mov edx, 3
mov cl, 0x5d
call fcn.140001e60
movzx r10d, al
mov edx, 4
mov cl, 0x20
call fcn.140001e60
movzx r11d, al
mov byte [rsp + 0x40], r8b
mov byte [rsp + 0x41], r9b
mov edx, 2
test ebx, ebx
je 0x140020a33
mov cl, 0x2d
call fcn.140001e60
mov byte [rsp + 0x42], al
mov byte [rsp + 0x43], r10b
mov byte [rsp + 0x44], r11b
mov edx, 5
mov cl, 0x44
call fcn.140001e60
mov byte [rsp + 0x45], al
mov edx, 6
mov cl, 0x72
call fcn.140001e60
mov byte [rsp + 0x46], al
mov edx, 7
mov cl, 0x69
call fcn.140001e60
mov byte [rsp + 0x47], al
mov edx, 8
mov cl, 0x76
call fcn.140001e60
mov byte [rsp + 0x48], al
mov edx, 9
mov cl, 0x65
call fcn.140001e60
mov byte [rsp + 0x49], al
mov edx, 0xa
mov cl, 0x72
call fcn.140001e60
mov byte [rsp + 0x4a], al
mov edx, 0xb
mov cl, 0x20
call fcn.140001e60
mov byte [rsp + 0x4b], al
mov edx, 0xc
mov cl, 0x55
call fcn.140001e60
mov byte [rsp + 0x4c], al
mov edx, 0xd
mov cl, 0x6e
call fcn.140001e60
mov byte [rsp + 0x4d], al
mov edx, 0xe
mov cl, 0x6c
call fcn.140001e60
mov byte [rsp + 0x4e], al
mov edx, 0xf
mov cl, 0x6f
call fcn.140001e60
mov byte [rsp + 0x4f], al
mov edx, 0x10
mov cl, 0x61
call fcn.140001e60
mov byte [rsp + 0x50], al
mov edx, 0x11
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x51], al
mov edx, 0x12
mov cl, 0x20
call fcn.140001e60
mov byte [rsp + 0x52], al
mov edx, 0x13
mov cl, 0x46
call fcn.140001e60
mov byte [rsp + 0x53], al
mov edx, 0x14
mov cl, 0x61
call fcn.140001e60
mov byte [rsp + 0x54], al
mov edx, 0x15
mov cl, 0x69
call fcn.140001e60
mov byte [rsp + 0x55], al
mov edx, 0x16
mov cl, 0x6c
call fcn.140001e60
mov byte [rsp + 0x56], al
mov edx, 0x17
mov cl, 0x65
call fcn.140001e60
mov byte [rsp + 0x57], al
mov edx, 0x18
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x58], al
mov edx, 0x19
mov cl, 0x21
call fcn.140001e60
mov byte [rsp + 0x59], al
mov edx, 0x1a
call fcn.140001e60
mov byte [rsp + 0x5a], al
xor eax, eax
mov byte [rsp + 0x5b], al
mov r9d, r15d
nop dword [rax + rax]
movsxd rax, r9d
lea r8, [rsp + 0x40]
add r8, rax
lea eax, [r9 + 0x13]
xor byte [r8], al
inc r9d
cmp r9d, 0x1b
jb 0x1400209d0
mov byte [rsp + 0x5b], 0
lea rdx, [rsp + 0x40]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.140014f70
lea rdx, [0x14000d5d0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
lea rdx, [rbp + 0x58]
cmp qword [rbp + 0x70], 7
cmova rdx, qword [rbp + 0x58]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
xor bl, bl
jmp 0x140020bf4
mov cl, 0x2b
call fcn.140001e60
mov byte [rsp + 0x42], al
mov byte [rsp + 0x43], r10b
mov byte [rsp + 0x44], r11b
mov edx, 5
mov cl, 0x56
call fcn.140001e60
mov byte [rsp + 0x45], al
mov edx, 6
mov cl, 0x75
call fcn.140001e60
mov byte [rsp + 0x46], al
mov edx, 7
mov cl, 0x6c
call fcn.140001e60
mov byte [rsp + 0x47], al
mov edx, 8
mov cl, 0x6e
call fcn.140001e60
mov byte [rsp + 0x48], al
mov edx, 9
mov cl, 0x20
call fcn.140001e60
mov byte [rsp + 0x49], al
mov edx, 0xa
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x4a], al
mov edx, 0xb
mov cl, 0x72
call fcn.140001e60
mov byte [rsp + 0x4b], al
mov edx, 0xc
mov cl, 0x69
call fcn.140001e60
mov byte [rsp + 0x4c], al
mov edx, 0xd
mov cl, 0x76
call fcn.140001e60
mov byte [rsp + 0x4d], al
mov edx, 0xe
mov cl, 0x65
call fcn.140001e60
mov byte [rsp + 0x4e], al
mov edx, 0xf
mov cl, 0x72
call fcn.140001e60
mov byte [rsp + 0x4f], al
mov edx, 0x10
mov cl, 0x20
call fcn.140001e60
mov byte [rsp + 0x50], al
mov edx, 0x11
mov cl, 0x75
call fcn.140001e60
mov byte [rsp + 0x51], al
mov edx, 0x12
mov cl, 0x6e
call fcn.140001e60
mov byte [rsp + 0x52], al
mov edx, 0x13
mov cl, 0x6c
call fcn.140001e60
mov byte [rsp + 0x53], al
mov edx, 0x14
mov cl, 0x6f
call fcn.140001e60
mov byte [rsp + 0x54], al
mov edx, 0x15
mov cl, 0x61
call fcn.140001e60
mov byte [rsp + 0x55], al
mov edx, 0x16
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x56], al
mov edx, 0x17
mov cl, 0x65
call fcn.140001e60
mov byte [rsp + 0x57], al
mov edx, 0x18
mov cl, 0x64
call fcn.140001e60
mov byte [rsp + 0x58], al
xor eax, eax
mov byte [rsp + 0x59], al
mov eax, r15d
movsxd rdx, eax
lea r8, [rsp + 0x40]
add r8, rdx
lea edx, [rax + 0x13]
xor byte [r8], dl
inc eax
cmp eax, 0x19
jb 0x140020b91
mov byte [rsp + 0x59], 0
lea rdx, [rsp + 0x40]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.140014f70
lea rdx, [0x14000d5d0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
lea rdx, [rbp + 0x58]
cmp qword [rbp + 0x70], 7
cmova rdx, qword [rbp + 0x58]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteTreeW]
test eax, eax
je 0x140020bf2
xor bl, bl
jmp 0x140020bf4
mov bl, 1
mov rdx, qword [rbp + 0x70]
cmp rdx, 7
jbe 0x140020c37
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020c32
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140020c32
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140021ee0
movdqa xmm0, xmmword [0x14002f600]
movdqu xmmword [rbp + 0x68], xmm0
mov word [rbp + 0x58], r15w
mov rdx, qword [rbp + 0x90]
cmp rdx, 7
jbe 0x140020c8f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020c8a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140020c8a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140021ee0
movzx eax, bl
mov rcx, qword [rbp + 0xa8]
xor rcx, rsp
call fcn.1400224b0
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.140009940
nop
call fcn.140009940
int3