Function at 0x1400124e0
Capabilities:
Encode data using xor
Hash data using fnv
Query or enumerate registry key
Query or enumerate registry value
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x970]
sub rsp, 0xa70
mov rax, qword [0x14005e8d8]
xor rax, rsp
mov qword [rbp + 0x960], rax
mov qword [rsp + 0x58], rcx
xorps xmm0, xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x50], xmm1
xor r12d, r12d
mov qword [rbp - 0x40], r12
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
lea rdx, [rbp + 0x60]
call fcn.140015820
nop
mov rdi, qword [rbp + 0x68]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14001259b
mov rcx, qword [rbp - 0x48]
nop
lea r8, [rbx + 0x10]
cmp rcx, qword [rbp - 0x40]
je 0x140012580
mov rdx, r8
call fcn.140002610
mov rcx, qword [rbp - 0x48]
add rcx, 0x20
mov qword [rbp - 0x48], rcx
jmp 0x140012590
mov rdx, rcx
lea rcx, [rbp - 0x50]
call fcn.140011160
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rdi
jne 0x140012560
lea rdx, str._n__List_of_Available_Adapters:
lea rcx, [0x14005e7e0]
call fcn.140001dd0
mov rcx, rax
call fcn.14000b280
mov esi, r12d
mov rbx, qword [rbp - 0x50]
cmp rbx, qword [rbp - 0x48]
je 0x140012696
nop word [rax + rax]
mov dl, 9
lea rcx, [0x14005e7e0]
call fcn.140010c40
inc esi
mov edx, esi
mov rcx, rax
call fcn.1400120e0
mov rcx, rax
lea rdx, [0x140045cc4]
call fcn.140001dd0
mov rdx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140012606
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.1400020d0
mov rdi, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rcx + rax + 0x40]
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x50], rcx
mov rdx, qword [rcx]
call qword [rdx + VariantCopy]
nop
lea rcx, [rsp + 0x48]
call fcn.1400024d0
mov rcx, qword [rax]
mov r8, qword [rcx + 0x40]
mov dl, 0xa
mov rcx, rax
call r8
movzx r14d, al
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140012674
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x140012674
mov rcx, qword [rax]
mov r8, qword [rcx]
mov edx, 1
mov rcx, rax
call r8
movzx edx, r14b
mov rcx, rdi
call fcn.140010360
mov rcx, rdi
call fcn.140010080
add rbx, 0x20
cmp rbx, qword [rbp - 0x48]
jne 0x1400125d0
lea rdx, str.__Selection:
lea rcx, [0x14005e7e0]
call fcn.140001dd0
mov dword [rbp - 0x38], r12d
lea rdx, [rbp - 0x38]
lea rdi, [0x14005e760]
mov rcx, rdi
call fcn.14000aab0
mov rax, qword [0x14005e760]
movsxd rcx, dword [rax + 4]
test byte [rcx + rdi + 0x10], 6
jne 0x140012e99
movsxd rbx, dword [rbp - 0x38]
cmp ebx, 1
jl 0x140012e99
cmp ebx, esi
jg 0x140012e99
lea rdx, str.______________________________________________
lea rcx, [0x14005e7e0]
call fcn.140001dd0
mov rcx, rax
call fcn.14000b280
lea rdx, str.___Selected_Adapter_is:
lea rcx, [0x14005e7e0]
call fcn.140001dd0
lea rdi, [rbx - 1]
mov rcx, qword [rbp - 0x48]
mov r8, qword [rbp - 0x50]
sub rcx, r8
sar rcx, 5
cmp rcx, rdi
jbe 0x1400130d1
mov rdx, rdi
shl rdx, 5
add rdx, r8
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14001274d
mov rdx, qword [rdx]
mov rcx, rax
call fcn.1400020d0
mov rcx, rax
call fcn.14000b280
lea rdx, str.__Old_MAC:
lea rcx, [0x14005e7e0]
call fcn.140001dd0
mov r13, rax
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x50]
sub rcx, rdx
sar rcx, 5
cmp rcx, rdi
jbe 0x1400130d1
mov rsi, rdi
shl rsi, 5
add rsi, rdx
mov r14, qword [rsi + 0x10]
mov r8, rsi
mov r15, qword [rsi + 0x18]
cmp r15, 0x10
jb 0x1400127a9
mov r8, qword [rsi]
movabs rcx, 0xcbf29ce484222325
mov rdx, r12
test r14, r14
je 0x1400127e4
movabs r9, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rdx + r8]
xor rcx, rax
imul rcx, r9
inc rdx
cmp rdx, r14
jb 0x1400127d0
and rcx, qword [rbp + 0x90]
add rcx, rcx
mov rax, qword [rbp + 0x78]
mov rbx, qword [rax + rcx*8 + 8]
cmp rbx, qword [rbp + 0x68]
je 0x1400130c4
mov r12, qword [rax + rcx*8]
nop word [rax + rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140012822
mov rdx, qword [rdx]
mov rcx, rsi
cmp r15, 0x10
jb 0x14001282e
mov rcx, qword [rsi]
cmp r14, rax
jne 0x14001283f
mov r8, r14
call fcn.14001cd60
test eax, eax
je 0x14001284e
cmp rbx, r12
je 0x1400130c4
mov rbx, qword [rbx + 8]
jmp 0x140012810
test rbx, rbx
je 0x1400130c4
lea rdx, [rbx + 0x30]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140012869
mov rdx, qword [rdx]
mov rcx, r13
call fcn.1400020d0
mov rcx, rax
call fcn.14000b280
mov rax, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x50]
sub rax, rdx
sar rax, 5
cmp rax, rdi
jbe 0x1400130d1
mov rcx, rdi
shl rcx, 5
add rcx, rdx
cmp qword [rcx + 0x18], 0x10
jb 0x1400128ab
mov rbx, qword [rcx]
add rbx, qword [rcx + 0x10]
jmp 0x1400128b2
mov rbx, qword [rcx + 0x10]
add rbx, rcx
shl rdi, 5
add rdi, rdx
cmp qword [rdi + 0x18], 0x10
jb 0x1400128c3
mov rdi, qword [rdi]
xor r12d, r12d
mov qword [rbp + 0x28], r12
mov qword [rbp + 0x30], 7
mov word [rbp + 0x18], r12w
mov rdx, rbx
sub rdx, rdi
lea rcx, [rbp + 0x18]
call fcn.140015f80
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp + 0x18]
call fcn.140010f20
nop
lea r13, [rbp + 0x18]
cmp qword [rbp + 0x30], 8
cmovae r13, qword [rbp + 0x18]
mov qword [rbp - 0x68], r12
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 0xf003f
xor r8d, r8d
lea rdx, str.SYSTEMCurrentControlSetControlClass4D36E972_E325_11CE_BFC1_08002bE10318
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140012e27
mov ebx, r12d
xor edx, edx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x40], ebx
mov dword [rbp - 0x58], 0x400
lea r9, [rbp - 0x58]
lea r8, [rbp + 0xa0]
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov rcx, qword [rbp - 0x68]
test eax, eax
jne 0x140012e11
mov qword [rbp - 0x60], r12
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0xf003f
xor r8d, r8d
lea rdx, [rbp + 0xa0]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x140012e08
mov dword [rbp + 0x10], 0x400
lea rax, [rbp + 0x10]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x4a0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, str.DriverDesc
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x140012dfe
lea ecx, [rax + 0x18]
call fcn.14001a09c
mov rbx, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140012a2c
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], r12
mov dword [rbx + 0x10], 1
mov rcx, r13
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
jne 0x140012a2f
test r13, r13
jne 0x140013090
jmp 0x140012a2f
mov rbx, r12
mov qword [rsp + 0x60], rbx
test rbx, rbx
je 0x1400130b3
mov rax, qword [rbx + 8]
test rax, rax
jne 0x140012a52
mov rcx, qword [rbx]
call fcn.14001b2e0
mov qword [rbx + 8], rax
mov rdx, rax
lea rcx, [rbp + 0x4a0]
call fcn.140029a50
test eax, eax
jne 0x140012dbb
lea rdx, [rbp - 0x30]
mov rcx, qword [rsp + 0x58]
call fcn.140013310
nop
mov qword [rbp], r12
mov qword [rbp + 8], r12
mov rdi, qword [rbp - 0x20]
lea r12, [rbp - 0x30]
mov r14, qword [rbp - 0x30]
mov r15, qword [rbp - 0x18]
cmp r15, 0x10
cmovae r12, r14
cmp rdi, 0x10
jae 0x140012ab8
movups xmm0, xmmword [r12]
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], rdi
mov qword [rbp + 8], 0xf
jmp 0x140012b41
mov rsi, rdi
or rsi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rsi, rax
cmova rsi, rax
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x140012b0c
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14001309b
mov rcx, rax
call fcn.14001a09c
mov rcx, rax
test rax, rax
je 0x1400130a7
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140012b1a
test rcx, rcx
je 0x140012b18
call fcn.14001a09c
jmp 0x140012b1a
xor eax, eax
mov qword [rbp - 0x10], rax
lea r8, [rdi + 1]
mov rdx, r12
mov rcx, rax
call fcn.14001c520
mov qword [rbp], rdi
mov qword [rbp + 8], rsi
mov r15, qword [rbp - 0x18]
mov rdi, qword [rbp - 0x20]
mov r14, qword [rbp - 0x30]
lea r12, [rbp - 0x30]
cmp r15, 0x10
cmovae r12, r14
add r12, rdi
lea rsi, [rbp - 0x30]
cmp r15, 0x10
cmovae rsi, r14
add rsi, rdi
lea rcx, [rbp - 0x30]
cmp r15, 0x10
cmovae rcx, r14
mov r8, rsi
sub r8, rcx
mov edx, 0x2d
call fcn.14001cce0
mov rcx, rsi
test rax, rax
cmovne rcx, rax
cmp rcx, rsi
je 0x140012bb4
lea rax, [rcx + 1]
cmp rax, rsi
je 0x140012bb4
movzx edx, byte [rax]
cmp dl, 0x2d
je 0x140012ba0
mov byte [rcx], dl
inc rcx
inc rax
cmp rax, rsi
jne 0x140012b93
mov r15, qword [rbp - 0x18]
mov rdi, qword [rbp - 0x20]
mov r14, qword [rbp - 0x30]
lea rax, [rbp - 0x30]
cmp r15, 0x10
cmovae rax, r14
mov rdx, rcx
sub rdx, rax
sub r12, rcx
mov rax, rdi
sub rax, rdx
cmp rax, r12
cmovb r12, rax
lea rcx, [rbp - 0x30]
cmp r15, 0x10
cmovae rcx, r14
add rcx, rdx
sub rdi, r12
mov qword [rbp - 0x20], rdi
sub rdi, rdx
lea r8, [rdi + 1]
lea rdx, [rcx + r12]
call fcn.14001c520
lea r8, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae r8, qword [rbp - 0x30]
add r8, qword [rbp - 0x20]
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
xor r12d, r12d
mov qword [rbp + 0x48], r12
mov eax, 0xf
mov qword [rbp + 0x50], rax
mov byte [rbp + 0x38], r12b
cmp rdx, r8
je 0x140012c45
sub r8, rdx
lea rcx, [rbp + 0x38]
call fcn.140005090
mov rax, qword [rbp + 0x50]
lea rcx, [rbp + 0x38]
cmp rax, 0x10
cmovae rcx, qword [rbp + 0x38]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x140012c60
inc eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
lea rdx, str.NetworkAddress
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x140012ce9
lea rdx, str.__New_Random_MAC:
lea rcx, [0x14005e7e0]
call fcn.140001dd0
lea rdx, [rbp - 0x10]
cmp qword [rbp + 8], 0x10
cmovae rdx, qword [rbp - 0x10]
mov r8, qword [rbp]
mov rcx, rax
call fcn.1400020d0
mov rcx, rax
call fcn.14000b280
mov r8, r13
xor edx, edx
mov rcx, qword [rsp + 0x58]
call fcn.140013120
mov r8, r13
mov edx, 1
mov rcx, qword [rsp + 0x58]
call fcn.140013120
nop
mov rdx, qword [rbp + 0x50]
cmp rdx, 0x10
jb 0x140012d24
inc rdx
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012d1f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400130a1
call fcn.14001a0d8
mov qword [rbp + 0x48], r12
mov qword [rbp + 0x50], 0xf
mov byte [rbp + 0x38], 0
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x140012d6f
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012d6a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400130a7
call fcn.14001a0d8
mov qword [rbp], r12
mov qword [rbp + 8], 0xf
mov byte [rbp - 0x10], 0
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140012dbb
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012db5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400130ad
call fcn.14001a0d8
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140012dfa
mov rcx, qword [rbx]
test rcx, rcx
je 0x140012ddb
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r12
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140012ded
call fcn.14001a0d8
mov qword [rbx + 8], r12
mov edx, 0x18
mov rcx, rbx
call fcn.14001a0d8
mov ebx, dword [rsp + 0x40]
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc ebx
mov edx, ebx
jmp 0x14001293e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rdx, str.______________________________________________
lea rcx, [0x14005e7e0]
jmp 0x140012e35
lea rdx, str.___Cannot_Access_Registry___Maybe_you_dont_have_Administrator_permission.
lea rcx, [0x14005e850]
call fcn.140001dd0
mov rcx, rax
call fcn.14000b280
nop
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x140012e83
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012e7e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400130be
call fcn.14001a0d8
mov qword [rbp + 0x28], r12
mov qword [rbp + 0x30], 7
mov word [rbp + 0x18], r12w
jmp 0x140012f57
mov eax, 4
cmp qword [rcx + rdi + 0x48], 0
cmovne eax, r12d
mov dword [rcx + rdi + 0x10], eax
test dword [rcx + rdi + 0x14], eax
jne 0x1400130d7
movabs rdx, 0x7fffffffffffffff
mov r8d, 0xa
mov rcx, rdi
call fcn.1400101b0
lea rdx, str.___Invalid_Selection_Input_
lea rcx, [0x14005e850]
call fcn.140001dd0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rcx + rax + 0x40]
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x50], rcx
mov rdx, qword [rcx]
call qword [rdx + VariantCopy]
nop
lea rcx, [rsp + 0x48]
call fcn.1400024d0
mov rcx, qword [rax]
mov r8, qword [rcx + 0x40]
mov dl, 0xa
mov rcx, rax
call r8
movzx edi, al
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140012f42
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x140012f42
mov rcx, qword [rax]
mov r8, qword [rcx]
mov edx, 1
mov rcx, rax
call r8
movzx edx, dil
mov rcx, rbx
call fcn.140010360
mov rcx, rbx
call fcn.140010080
nop
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x78]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140012f96
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001310c
call fcn.14001a0d8
mov qword [rbp + 0x78], r12
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x80], xmm0
lea rcx, [rbp + 0x68]
call fcn.140011ea0
nop
mov rbx, qword [rbp - 0x50]
test rbx, rbx
je 0x14001305a
mov rdi, qword [rbp - 0x48]
cmp rbx, rdi
je 0x140013026
nop word [rax + rax]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x14001300a
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x140013005
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001308a
mov rcx, r8
call fcn.14001a0d8
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rdi
jne 0x140012fd0
mov rbx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x40]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x140013052
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001308a
mov rcx, rbx
call fcn.14001a0d8
mov rcx, qword [rbp + 0x960]
xor rcx, rsp
call fcn.14001a6e0
lea r11, [rsp + 0xa70]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14002080c
nop
mov ecx, 0x8007000e
call fcn.14001b2d0
nop
call fcn.140004e90
nop
call fcn.14002080c
nop
call fcn.14002080c
nop
call fcn.14002080c
nop
mov ecx, 0x8007000e
call fcn.14001b2d0
nop
call fcn.14002080c
int3
lea rcx, str.invalid_unordered_map_K__T__key
call fcn.140016b78
int3
call fcn.1400149d0
int3
mov edx, 1
lea rcx, [rsp + 0x48]
call fcn.1400055a0
mov r8, rax
lea rdx, str.ios_base::badbit_set
lea rcx, [rsp + 0x70]
call fcn.140002c80
lea rdx, [0x14005c7b0]
lea rcx, [rsp + 0x70]
call fcn.14001b7b8
nop
call fcn.14002080c
int3