Function at 0x1800028d0
Capabilities:
Check os version
Query or enumerate registry value

Disassembly:
jmp 0x180001d6c
call 0x180001d85
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
stosb byte [rdi], al
pop rax
push rcx
push rdx
push rbx
push rsi
nop
push rdi
push rbp
push r10
push r11
push r12
nop
push r13
push r14
push r15
mov r8, rsp
nop
sub rsp, 0x20
jmp 0x1800028d0
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x228
mov rax, qword [0x180041750]
xor rax, rsp
mov qword [rsp + 0x210], rax
mov dword [rsp + 0x38], 0xf53895a1
mov dword [rsp + 0x34], 0xf28f1be1
mov dword [rsp + 0x30], 0x24
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x38]
or ecx, eax
mov eax, ecx
add eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x38], eax
jl 0x1800029d1
mov dword [rsp + 0x48], 0
jmp 0x18000294d
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 3
jge 0x18000299f
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x1f8], eax
mov eax, dword [rsp + 0x30]
cdq
mov ecx, dword [rsp + 0x1f8]
idiv ecx
mov ecx, dword [rsp + 0x38]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
jmp 0x180002943
lea rax, [rsp + 0x38]
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x1fc], eax
mov eax, dword [rsp + 0x30]
cdq
mov ecx, dword [rsp + 0x1fc]
idiv ecx
mov ecx, dword [rsp + 0x30]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x238], 1
jne 0x180003026
mov rax, qword [rsp + 0x230]
mov qword [0x180041770], rax
mov dword [rsp + 0x8c], 0
jmp 0x180002a0b
mov eax, dword [rsp + 0x8c]
inc eax
mov dword [rsp + 0x8c], eax
cmp dword [rsp + 0x8c], 3
jge 0x180002a51
mov dword [rsp + 0x60], 0x2061
lea rax, [rsp + 0x60]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x200], eax
mov rcx, qword [rsp + 0x90]
mov eax, dword [rcx]
cdq
mov ecx, dword [rsp + 0x200]
idiv ecx
mov dword [rsp + 0x70], eax
jmp 0x1800029fb
mov dword [rsp + 0x60], 0x9757
lea rax, [rsp + 0x60]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x204], eax
mov rcx, qword [rsp + 0x80]
mov eax, dword [rcx]
cdq
mov ecx, dword [rsp + 0x204]
idiv ecx
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x70], 0x307a
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x70]
or ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x5c]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x5c]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x240]
mov qword [0x180041760], rax
mov dword [rsp + 0x78], 0x28d1
mov dword [rsp + 0x6c], 0xf5a93fa9
mov eax, dword [rsp + 0x6c]
inc eax
mov dword [rsp + 0x208], eax
mov eax, dword [rsp + 0x78]
cdq
mov ecx, dword [rsp + 0x208]
idiv ecx
mov ecx, dword [rsp + 0x78]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x78], eax
lea rax, str.ROAM_STATE_EXAMINE_DIRECT_ROAM_CANDIDATE
mov edx, eax
mov ecx, dword [rsp + 0x6c]
call fcn.180002230
cmp dword [rsp + 0x78], 0xf730c9cc
jne 0x180002bb6
cmp dword [rsp + 0x6c], 0x1821
jl 0x180002b95
mov dword [rsp + 0x98], 0xf1f4705e
mov dword [rsp + 0x9c], 0xb741
mov eax, dword [rsp + 0x9c]
mov ecx, dword [rsp + 0x98]
and ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x98]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x9c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x9c], eax
mov dword [rsp + 0x74], 0x20
mov eax, dword [rsp + 0x74]
mov ecx, dword [rsp + 0x78]
and ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x78]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x6c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x74], 0xf8fd1bed
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rsp + 0x74]
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x74]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x88], 0xea60
mov dword [rsp + 0x64], 0
jmp 0x180002bd5
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x88]
cmp dword [rsp + 0x64], eax
jge 0x180002dac
mov dword [rsp + 0xc0], 0x7d
cmp dword [rsp + 0xc0], 0xfcd5278e
jg 0x180002c39
mov dword [rsp + 0xbc], 0xfa10a334
mov dword [rsp + 0xa8], 0x38
mov eax, dword [rsp + 0xa8]
mov ecx, dword [rsp + 0xbc]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xc0]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0xc0], eax
mov edx, 0x32
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xc4], 0
jmp 0x180002c6b
mov eax, dword [rsp + 0xc4]
inc eax
mov dword [rsp + 0xc4], eax
cmp dword [rsp + 0xc4], 3
jge 0x180002c9d
mov dword [rsp + 0xb8], 0x32
cmp dword [rsp + 0xb8], 0xd89d
jg 0x180002c9b
lea rcx, [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
jmp 0x180002c5b
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_LocalFlags]
mov dword [rsp + 0xac], 7
mov eax, dword [rsp + 0xac]
or eax, 0xf893c262
mov ecx, dword [rsp + 0xac]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0xac]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0xac], eax
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [rsp + 0xb4], 0xf24b8275
cmp dword [rsp + 0xb4], 0xa804
je 0x180002d7f
cmp dword [rsp + 0xb4], 0xed67
jne 0x180002d7f
mov dword [rsp + 0xb0], 0xf6ad931e
mov dword [rsp + 0x180], 0xfcae17eb
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x190], rax
lea rax, [rsp + 0x180]
mov qword [rsp + 0x188], rax
mov rax, qword [rsp + 0x190]
mov eax, dword [rax]
and eax, 5
mov rcx, qword [rsp + 0x188]
add eax, dword [rcx]
mov ecx, dword [rsp + 0xb4]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0xb4], eax
mov ecx, dword [rsp + 0xb0]
call fcn.1800010f0
mov dword [rsp + 0xb0], 0x3045
mov r8d, dword [rsp + 0xb0]
mov edx, dword [rsp + 0xb4]
lea rax, str.CAmos::dpSetMicGain___Recieved_NULL_DATAPUMP
mov ecx, eax
call fcn.180002860
jmp 0x180002bcb
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHLWAPI.dll_SHQueryValueExA]
cmp eax, 6
jl 0x180002fa7
mov dword [rsp + 0x19c], 0xb9
mov dword [rsp + 0x198], 0x88
mov eax, dword [rsp + 0x198]
mov ecx, dword [rsp + 0x19c]
and ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x19c]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x19c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x19c], eax
lea rax, str.R60___d
mov ecx, eax
call fcn.1800012c0
call fcn.180002610
cmp eax, 1
jne 0x180002fa7
mov dword [rsp + 0x1c4], 0
jmp 0x180002e55
mov eax, dword [rsp + 0x1c4]
inc eax
mov dword [rsp + 0x1c4], eax
cmp dword [rsp + 0x1c4], 1
jge 0x180002ede
mov dword [rsp + 0x1ac], 0xf1cdef03
mov dword [rsp + 0x1e0], 0xf1abe907
lea rax, [rsp + 0x1ac]
mov qword [rsp + 0x1c8], rax
mov rax, qword [rsp + 0x1c8]
mov eax, dword [rax]
and eax, 0x3e8b
add eax, dword [rsp + 0x1e0]
mov dword [rsp + 0x1d0], eax
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x1d8], rax
mov rax, qword [rsp + 0x1d8]
mov eax, dword [rax]
mov ecx, dword [rsp + 0x1e0]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1e0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1e0], eax
jmp 0x180002e45
call fcn.180001360
mov dword [rsp + 0x1a8], 0xbf73
mov eax, dword [rsp + 0x1a8]
or eax, 0x3c71
mov ecx, dword [rsp + 0x1a8]
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1a8]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x1a8], eax
mov dword [rsp + 0x1c0], 0xbe
lea rax, [rsp + 0x1c0]
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0x1a0]
mov ecx, dword [rsp + 0x1c0]
imul ecx, dword [rax]
mov eax, ecx
mov ecx, dword [rsp + 0x1c0]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x1c0], eax
mov dword [rsp + 0x1b0], 0x31
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rax
mov eax, dword [rsp + 0x1c0]
mov ecx, dword [rsp + 0x1b0]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x1b8]
mov ecx, dword [rcx]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1a8]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x1a8], eax
mov dword [rsp + 0x1e4], 0
jmp 0x180002fc4
mov eax, dword [rsp + 0x1e4]
inc eax
mov dword [rsp + 0x1e4], eax
cmp dword [rsp + 0x1e4], 4
jge 0x180003026
mov dword [rsp + 0x68], 0x6dd6
mov dword [rsp + 0x1e8], 0xcd6e
lea rax, [rsp + 0x68]
mov qword [rsp + 0x1f0], rax
mov eax, dword [rsp + 0x1e8]
inc eax
mov dword [rsp + 0x20c], eax
mov rcx, qword [rsp + 0x1f0]
mov eax, dword [rcx]
cdq
mov ecx, dword [rsp + 0x20c]
idiv ecx
mov ecx, dword [rsp + 0x1e8]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x1e8], eax
jmp 0x180002fb4
xor eax, eax
mov eax, 1
mov rcx, qword [rsp + 0x210]
xor rcx, rsp
call fcn.180009930
add rsp, 0x228
ret