Function at 0x1002d2d0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x101a49d4]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
mov eax, ecx
push edi
push 0xf
push str.Unknown_version
mov dword [esp + 0x14], eax
mov dword [eax], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
call fcn.10051fd0
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0
push str.DisplayVersion
push dword [esp + 0x24]
call ebx
mov eax, dword [esp + 0x18]
shr eax, 1
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 7
jne 0x1002d372
xor ecx, ecx
mov dword [esp + 0x5c], eax
mov word [esp + eax*2 + 0x4c], cx
jmp 0x1002d37e
push 0
push eax
lea ecx, [esp + 0x54]
call fcn.10055be0
cmp dword [esp + 0x60], 8
lea ecx, [esp + 0x18]
push ecx
lea eax, [esp + 0x50]
cmovae eax, dword [esp + 0x50]
push eax
push 0
push 0
push str.DisplayVersion
push dword [esp + 0x24]
call ebx
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [esp + 0x60]
lea esi, [esp + 0x4c]
mov edi, dword [esp + 0x5c]
cmp ebx, 8
cmovae esi, dword [esp + 0x4c]
test edi, edi
je 0x1002d40d
mov eax, edi
xor edx, edx
mov ecx, esi
test eax, eax
je 0x1002d3e2
cmp word [esi], dx
je 0x1002d3e0
cmp eax, 1
je 0x1002d3e2
add ecx, 2
dec eax
cmp word [ecx], dx
jne 0x1002d3d2
mov edx, ecx
test edx, edx
je 0x1002d40d
sub edx, esi
sar edx, 1
cmp edx, 0xffffffff
je 0x1002d40d
cmp edi, edx
jb 0x1002ddd6
cmp ebx, 8
mov dword [esp + 0x5c], edx
lea eax, [esp + 0x4c]
cmovae eax, dword [esp + 0x4c]
xor ecx, ecx
mov word [eax + edx*2], cx
push 0
push 0x1018ed8c
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 7
call fcn.10051fd0
push 1
push 0x1018e18c
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 7
call fcn.10051fd0
mov edi, dword [esp + 0x2c]
xor esi, esi
cmp dword [esp + 0x48], 8
lea eax, [esp + 0x34]
push dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
lea ecx, [esp + 0x50]
mov edx, dword [esp + 0x60]
cmovae eax, ebx
cmp dword [esp + 0x64], 8
push eax
cmovae ecx, dword [esp + 0x54]
push esi
call fcn.1005b900
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x1002d4c0
cmp dword [esp + 0x30], 8
lea eax, [esp + 0x1c]
push edi
cmovae eax, dword [esp + 0x20]
lea ecx, [esp + 0x50]
push eax
push dword [esp + 0x4c]
push esi
call fcn.10055920
mov edi, dword [esp + 0x2c]
add esi, edi
jmp 0x1002d463
mov eax, dword [esp + 0x48]
cmp eax, 8
jb 0x1002d4f8
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x1002d4ee
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002dddb
push ecx
push ebx
call fcn.1011a823
add esp, 8
mov edx, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 7
mov word [esp + 0x34], ax
cmp edx, 8
jb 0x1002d54b
mov ecx, dword [esp + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002d541
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002dddb
push edx
push ecx
call fcn.1011a823
add esp, 8
lea eax, [esp + 0x18]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x10]
push eax
push 0
push 0
push 0
push str.CurrentBuildNumber
push dword [esp + 0x2c]
mov dword [esp + 0x28], 0
call esi
mov eax, dword [esp + 0x10]
shr eax, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 7
jne 0x1002d5b8
xor ecx, ecx
mov dword [esp + 0x44], eax
mov word [esp + eax*2 + 0x34], cx
jmp 0x1002d5c4
push 0
push eax
lea ecx, [esp + 0x3c]
call fcn.10055be0
cmp dword [esp + 0x48], 8
lea ecx, [esp + 0x10]
push ecx
lea eax, [esp + 0x38]
cmovae eax, dword [esp + 0x38]
push eax
push 0
push 0
push str.CurrentBuildNumber
push dword [esp + 0x2c]
call esi
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.10124c14
cmp dword [esp + 0x48], 8
lea esi, [esp + 0x34]
mov edi, eax
lea eax, [esp + 0x14]
cmovae esi, dword [esp + 0x34]
push 0xa
push eax
push esi
mov dword [edi], 0
call fcn.101234f8
add esp, 0xc
mov ebx, eax
cmp esi, dword [esp + 0x14]
je 0x1002dde0
cmp dword [edi], 0x22
je 0x1002ddcc
mov edx, dword [esp + 0x48]
cmp edx, 8
jb 0x1002d66d
mov ecx, dword [esp + 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002d663
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002ddea
push edx
push ecx
call fcn.1011a823
add esp, 8
mov edi, 0x7ffffffe
cmp ebx, 0xa28
jl 0x1002d79e
mov ecx, dword [esp + 0x5c]
mov eax, edi
sub eax, ecx
cmp eax, 0xc
jb 0x1002ddef
cmp dword [esp + 0x60], 8
lea eax, [esp + 0x4c]
push ecx
cmovae eax, dword [esp + 0x50]
push eax
push 0xc
push 0x1018ed94
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x4c]
call fcn.1005dba0
push 1
push 0x1018ed90
lea ecx, [esp + 0x3c]
call fcn.100520e0
mov esi, eax
mov dword [esp + 0x1c], 0
push 0x18
lea eax, [esp + 0x20]
mov dword [esp + 0x30], 0
push esi
push eax
mov dword [esp + 0x3c], 0
call fcn.1011b630
mov ecx, dword [esp + 0x18]
xor eax, eax
add esp, 0xc
mov word [esi], ax
lea eax, [esp + 0x1c]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
push eax
call fcn.100522e0
mov edx, dword [esp + 0x30]
cmp edx, 8
jb 0x1002d74b
mov ecx, dword [esp + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002d741
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002ddf4
push edx
push ecx
call fcn.1011a823
add esp, 8
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 7
mov word [esp + 0x1c], ax
cmp edx, 8
jb 0x1002d79e
mov ecx, dword [esp + 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002d794
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002ddf4
push edx
push ecx
call fcn.1011a823
add esp, 8
cmp ebx, 0x1770
jl 0x1002d8ca
mov ecx, dword [esp + 0x5c]
mov eax, edi
sub eax, ecx
cmp eax, 0xf
jb 0x1002ddf9
cmp dword [esp + 0x60], 8
lea eax, [esp + 0x4c]
push ecx
cmovae eax, dword [esp + 0x50]
push eax
push 0xf
push str.Windows_Vista__
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x4c]
call fcn.1005dba0
push 1
push 0x1018ed90
lea ecx, [esp + 0x3c]
call fcn.100520e0
mov esi, eax
mov dword [esp + 0x1c], 0
push 0x18
lea eax, [esp + 0x20]
mov dword [esp + 0x30], 0
push esi
push eax
mov dword [esp + 0x3c], 0
call fcn.1011b630
mov ecx, dword [esp + 0x18]
xor eax, eax
add esp, 0xc
mov word [esi], ax
lea eax, [esp + 0x1c]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
push eax
call fcn.100522e0
mov edx, dword [esp + 0x30]
cmp edx, 8
jb 0x1002d877
mov ecx, dword [esp + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002d86d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002ddfe
push edx
push ecx
call fcn.1011a823
add esp, 8
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 7
mov word [esp + 0x1c], ax
cmp edx, 8
jb 0x1002d8ca
mov ecx, dword [esp + 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002d8c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002ddfe
push edx
push ecx
call fcn.1011a823
add esp, 8
cmp ebx, 0x1772
jle 0x1002d9f6
mov ecx, dword [esp + 0x5c]
mov eax, edi
sub eax, ecx
cmp eax, 0xb
jb 0x1002de03
cmp dword [esp + 0x60], 8
lea eax, [esp + 0x4c]
push ecx
cmovae eax, dword [esp + 0x50]
push eax
push 0xb
push str.Windows_7__
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x4c]
call fcn.1005dba0
push 1
push 0x1018ed90
lea ecx, [esp + 0x3c]
call fcn.100520e0
mov esi, eax
mov dword [esp + 0x1c], 0
push 0x18
lea eax, [esp + 0x20]
mov dword [esp + 0x30], 0
push esi
push eax
mov dword [esp + 0x3c], 0
call fcn.1011b630
mov ecx, dword [esp + 0x18]
xor eax, eax
add esp, 0xc
mov word [esi], ax
lea eax, [esp + 0x1c]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
push eax
call fcn.100522e0
mov edx, dword [esp + 0x30]
cmp edx, 8
jb 0x1002d9a3
mov ecx, dword [esp + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002d999
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de08
push edx
push ecx
call fcn.1011a823
add esp, 8
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 7
mov word [esp + 0x1c], ax
cmp edx, 8
jb 0x1002d9f6
mov ecx, dword [esp + 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002d9ec
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de08
push edx
push ecx
call fcn.1011a823
add esp, 8
cmp ebx, 0x1db1
jle 0x1002db22
mov ecx, dword [esp + 0x5c]
mov eax, edi
sub eax, ecx
cmp eax, 0xb
jb 0x1002de0d
cmp dword [esp + 0x60], 8
lea eax, [esp + 0x4c]
push ecx
cmovae eax, dword [esp + 0x50]
push eax
push 0xb
push str.Windows_8__
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x4c]
call fcn.1005dba0
push 1
push 0x1018ed90
lea ecx, [esp + 0x3c]
call fcn.100520e0
mov esi, eax
mov dword [esp + 0x1c], 0
push 0x18
lea eax, [esp + 0x20]
mov dword [esp + 0x30], 0
push esi
push eax
mov dword [esp + 0x3c], 0
call fcn.1011b630
mov ecx, dword [esp + 0x18]
xor eax, eax
add esp, 0xc
mov word [esi], ax
lea eax, [esp + 0x1c]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
push eax
call fcn.100522e0
mov edx, dword [esp + 0x30]
cmp edx, 8
jb 0x1002dacf
mov ecx, dword [esp + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002dac5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de12
push edx
push ecx
call fcn.1011a823
add esp, 8
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 7
mov word [esp + 0x1c], ax
cmp edx, 8
jb 0x1002db22
mov ecx, dword [esp + 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002db18
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de12
push edx
push ecx
call fcn.1011a823
add esp, 8
cmp ebx, 0x2580
jle 0x1002dc4e
mov ecx, dword [esp + 0x5c]
mov eax, edi
sub eax, ecx
cmp eax, 0xc
jb 0x1002de17
cmp dword [esp + 0x60], 8
lea eax, [esp + 0x4c]
push ecx
cmovae eax, dword [esp + 0x50]
push eax
push 0xc
push str.Windows_10__
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x4c]
call fcn.1005dba0
push 1
push 0x1018ed90
lea ecx, [esp + 0x3c]
call fcn.100520e0
mov esi, eax
mov dword [esp + 0x1c], 0
push 0x18
lea eax, [esp + 0x20]
mov dword [esp + 0x30], 0
push esi
push eax
mov dword [esp + 0x3c], 0
call fcn.1011b630
mov ecx, dword [esp + 0x18]
xor eax, eax
add esp, 0xc
mov word [esi], ax
lea eax, [esp + 0x1c]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
push eax
call fcn.100522e0
mov edx, dword [esp + 0x30]
cmp edx, 8
jb 0x1002dbfb
mov ecx, dword [esp + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002dbf1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de1c
push edx
push ecx
call fcn.1011a823
add esp, 8
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 7
mov word [esp + 0x1c], ax
cmp edx, 8
jb 0x1002dc4e
mov ecx, dword [esp + 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002dc44
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de1c
push edx
push ecx
call fcn.1011a823
add esp, 8
cmp ebx, 0x55f0
jl 0x1002dd7c
mov ecx, dword [esp + 0x5c]
sub edi, ecx
cmp edi, 0xc
jb 0x1002de21
cmp dword [esp + 0x60], 8
lea eax, [esp + 0x4c]
push ecx
cmovae eax, dword [esp + 0x50]
push eax
push 0xc
push str.Windows_11__
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x4c]
call fcn.1005dba0
push 1
push 0x1018ed90
lea ecx, [esp + 0x3c]
call fcn.100520e0
mov esi, eax
mov dword [esp + 0x1c], 0
push 0x18
lea eax, [esp + 0x20]
mov dword [esp + 0x30], 0
push esi
push eax
mov dword [esp + 0x3c], 0
call fcn.1011b630
mov ebx, dword [esp + 0x18]
xor eax, eax
add esp, 0xc
mov word [esi], ax
lea eax, [esp + 0x1c]
mov dword [esi + 0x10], 0
mov ecx, ebx
mov dword [esi + 0x14], 7
push eax
call fcn.100522e0
mov edx, dword [esp + 0x30]
cmp edx, 8
jb 0x1002dd27
mov ecx, dword [esp + 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002dd1d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de26
push edx
push ecx
call fcn.1011a823
add esp, 8
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 7
mov word [esp + 0x1c], ax
cmp edx, 8
jb 0x1002dd80
mov ecx, dword [esp + 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002dd70
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de26
push edx
push ecx
call fcn.1011a823
add esp, 8
jmp 0x1002dd80
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x60]
cmp edx, 8
jb 0x1002ddb8
mov ecx, dword [esp + 0x4c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1002ddae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002de2b
push edx
push ecx
call fcn.1011a823
add esp, 8
mov ecx, dword [esp + 0x64]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1011a2e1
mov esp, ebp
pop ebp
ret
push str.stoi_argument_out_of_range
call fcn.1010560a
call fcn.10058770
call fcn.10125fc5
push str.invalid_stoi_argument
call fcn.101055ca
call fcn.10125fc5
call fcn.10021260
call fcn.10125fc5
call fcn.10021260
call fcn.10125fc5
call fcn.10021260
call fcn.10125fc5
call fcn.10021260
call fcn.10125fc5
call fcn.10021260
call fcn.10125fc5
call fcn.10021260
call fcn.10125fc5
call fcn.10125fc5
int3