Function at 0x14008c850
Capabilities:
Contain obfuscated stackstrings
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov byte [rax + 0x18], r8b
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x378]
sub rsp, 0x440
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov dil, r8b
mov bl, dl
mov r12, rcx
mov esi, 0x104
mov r8d, esi
xor edx, edx
lea rcx, [rbp + 0x230]
call fcn.14004e050
mov r13, 0xffffffff80000002
test dil, dil
je 0x14008c8b9
mov r13, 0xffffffff80000003
lea rcx, [rbp + 0x230]
call fcn.14008a89c
mov dword [rsp + 0x7d], 0x6e6f6973
mov dword [rsp + 0x69], 0x69575c74
mov dword [rsp + 0x76], 0x746e6572
mov word [rbp - 0x76], WSASetLastError
mov dword [rsp + 0x65], 0x666f736f
mov dword [rsp + 0x6d], 0x776f646e
mov word [rsp + 0x59], 0x464f
mov word [rbp - 0x7b], 0x736e
mov dword [rsp + 0x71], 0x75435c73
mov dword [rsp + 0x60], 0x63694d5c
mov word [rbp - 0x7e], 0x6e55
mov dword [rsp + 0x5c], 0x45524157
mov word [rbp - 0x79], 0x6174
mov byte [rsp + 0x58], 0x53
mov byte [rsp + 0x75], WSACleanup
mov byte [rsp + 0x5b], 0x54
mov byte [rbp - 0x77], WSAGetLastError
mov word [rsp + 0x7a], 0x6556
mov byte [rsp + 0x64], WSACleanup
mov byte [rsp + 0x7c], WSACleanup
mov byte [rbp - 0x7c], 0x69
mov byte [rbp - 0x7f], 0x5c
mov r8, rsi
xor edx, edx
lea rcx, [rbp + 0x120]
call fcn.14004e050
mov r8, rsi
xor edx, edx
lea rcx, [rbp + 0x10]
call fcn.14004e050
mov dword [rbp + 0x398], esi
neg bl
sbb r15d, r15d
and r15d, 0xfffffe00
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x50]
call fcn.1400109fc
nop
xor ebx, ebx
test dil, dil
je 0x14008c9a7
lea r9, [rsp + 0x58]
lea r8, [rbp + 0x230]
lea rdx, [0x1400bd11c]
lea rcx, [rbp - 0x50]
call fcn.14000da78
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
lea r9d, [r15 + 0x20219]
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x14008c9d3
mov sil, bl
jmp 0x14008cf49
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x398]
lea r8, [rbp + 0x120]
xor edx, edx
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov esi, 1
mov r14d, esi
test eax, eax
jne 0x14008cf3e
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0x10]
call fcn.14004e050
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x10]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rdx, [rbp + 0x120]
lea rcx, [rbp + 0x10]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x60]
call fcn.1400109fc
nop
test dil, dil
je 0x14008ca70
lea r9, [rbp + 0x10]
lea r8, [rbp + 0x230]
lea rdx, [0x1400bd11c]
lea rcx, [rbp - 0x60]
call fcn.14000da78
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
lea r9d, [r15 + 0x20219]
xor r8d, r8d
mov rdx, qword [rbp - 0x60]
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x14008cafa
mov dword [rbp + 0x398], 0x104
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x398]
lea r8, [rbp + 0x120]
mov edx, r14d
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov ebx, eax
add r14d, esi
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
or ecx, 0xffffffff
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x14008cf05
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.WS2_32.dll_htonl + 8]
jmp 0x14008cf05
mov eax, 4
mov dword [rsp + 0x40], eax
mov dword [rbp - 0x70], ebx
mov dword [rbp + 0x388], eax
lea rax, [rbp + 0x388]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
xor r8d, r8d
lea rdx, str.SystemComponent
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [rbp - 0x70], ebx
jne 0x14008ce9f
lea rdx, [0x1400bcee3]
lea rcx, [rsp + 0x48]
call fcn.1400109fc
nop
lea rdx, [0x1400bcee3]
lea rcx, [rsp + 0x50]
call fcn.1400109fc
nop
mov dword [rsp + 0x40], esi
mov r8d, 0x800
mov dword [rbp + 0x388], r8d
mov rax, qword [rsp + 0x48]
mov edx, esi
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, r8d
or ecx, edx
jge 0x14008cb9e
mov edx, r8d
lea rcx, [rsp + 0x48]
call fcn.140010c2c
mov rax, qword [rsp + 0x48]
lea rcx, [rbp + 0x388]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
xor r8d, r8d
lea rdx, str.DisplayName
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, eax
mov rcx, qword [rsp + 0x48]
movsxd rdx, dword [rcx - 0xc]
call fcn.1400606d8
test eax, eax
js 0x14008cf33
mov rcx, qword [rsp + 0x48]
cmp eax, dword [rcx - 0xc]
jg 0x14008cf33
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rsp + 0x48]
mov byte [rcx + rax], 0
test ebx, ebx
jne 0x14008ce54
mov rax, qword [r12]
mov rbx, qword [rax]
mov qword [rbp - 0x30], rax
cmp rbx, rax
je 0x14008cd1d
lea rdi, [rbx + 0x10]
mov rdx, rdi
lea rcx, [rbp - 0x48]
call fcn.140010a98
nop
lea rdx, [rdi + 8]
lea rcx, [rbp - 0x40]
call fcn.140010a98
nop
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x48]
call fcn.1400060f8
nop
mov rdx, qword [rax]
test rdx, rdx
je 0x14008cf10
mov rcx, qword [rsp + 0x48]
call fcn.140060494
test eax, eax
sete dil
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008cc81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
test dil, dil
jne 0x14008ccdb
or edi, 0xffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14008cca7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14008ccc5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rbx, qword [rbx]
mov rax, qword [r12]
mov qword [rbp - 0x30], rax
cmp rbx, rax
jne 0x14008cc19
jmp 0x14008cd20
or edi, 0xffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
xor ebx, ebx
test eax, eax
jg 0x14008ccf6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14008ce59
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x14008ce59
or edi, 0xffffffff
mov r8d, 0x800
mov dword [rbp + 0x388], r8d
mov rax, qword [rsp + 0x50]
mov edx, esi
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, r8d
or ecx, edx
jge 0x14008cd53
mov edx, r8d
lea rcx, [rsp + 0x50]
call fcn.140010c2c
mov rax, qword [rsp + 0x50]
lea rcx, [rbp + 0x388]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
xor r8d, r8d
lea rdx, str.DisplayVersion
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov rcx, qword [rsp + 0x50]
movsxd rdx, dword [rcx - 0xc]
call fcn.1400606d8
test eax, eax
js 0x14008cf28
mov rcx, qword [rsp + 0x50]
cmp eax, dword [rcx - 0xc]
jg 0x14008cf28
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rsp + 0x50]
mov byte [rcx + rax], 0
lea rax, [rbp - 0x28]
mov qword [rbp], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x28]
call fcn.140010a98
mov rbx, rax
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x20]
call fcn.140010a98
nop
mov r8, rbx
mov rdx, rax
lea rcx, [rbp - 0x18]
call fcn.140006018
nop
mov rbx, qword [r12]
lea r9, [rbp - 0x18]
mov r8, qword [rbx + 8]
mov rdx, rbx
call fcn.14000f948
mov rdx, qword [r12 + 8]
movabs rcx, 0x7fffffffffffffe
sub rcx, rdx
cmp rcx, rsi
jb 0x14008cf1b
lea rcx, [rdx + 1]
mov qword [r12 + 8], rcx
mov qword [rbx + 8], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rax
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
xor ebx, ebx
test eax, eax
jg 0x14008ce4b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, qword [rbp - 0x18]
jmp 0x14008ccfa
xor ebx, ebx
or edi, 0xffffffff
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14008ce79
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x14008ce98
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov dil, byte [rbp + 0x390]
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [rbp + 0x398], 0x104
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x398]
lea r8, [rbp + 0x120]
mov edx, r14d
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov ebx, eax
add r14d, esi
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008cf05
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test ebx, ebx
jne 0x14008cf3e
xor ebx, ebx
jmp 0x14008ca11
mov ecx, 0x80004005
call fcn.140010d40
nop
lea rcx, str.list_T__too_long
call fcn.14004ae60
nop
mov ecx, 0x80070057
call fcn.140010d40
int3
mov ecx, 0x80070057
call fcn.140010d40
nop
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
or ecx, 0xffffffff
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x14008cf68
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.WS2_32.dll_htonl + 8]
mov al, sil
mov rbx, qword [rsp + 0x480]
add rsp, 0x440
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret