Function at 0x496a2c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push edi
push 0x1c
pop edi
cdq
mov ecx, edi
idiv ecx
and dword [ebp - 4], 0
test eax, eax
je 0x496d96
push 0
mov ecx, esi
call fcn.00496521
push 8
pop ebx
cmp dword [eax + 0x18], ebx
jb 0x496a68
mov eax, dword [eax + 4]
jmp 0x496a6b
add eax, 4
push eax
lea ecx, [ebp + 8]
call fcn.00404030
push str.deletekey
lea ecx, [ebp + 8]
call fcn.0040b6b0
test eax, eax
jne 0x496aee
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
mov ecx, edi
cdq
idiv ecx
cmp eax, 3
jne 0x496aee
push 2
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496aa8
mov edi, dword [eax + 4]
jmp 0x496aab
lea edi, [eax + 4]
push 1
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496abe
mov esi, dword [eax + 4]
jmp 0x496ac1
lea esi, [eax + 4]
push 0
push ecx
mov ecx, esp
push 0x4e0c80
call fcn.00404030
push ecx
mov ecx, esp
push edi
call fcn.00404030
push esi
lea ecx, [ebp - 0x14]
call fcn.004968fe
push eax
call fcn.0048cc16
pop ecx
jmp 0x496d80
push str.deleteemptykey
lea ecx, [ebp + 8]
call fcn.0040b6b0
test eax, eax
jne 0x496b64
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
mov ecx, edi
cdq
idiv ecx
cmp eax, 3
jne 0x496b64
push 2
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496b22
mov edi, dword [eax + 4]
jmp 0x496b25
lea edi, [eax + 4]
push 1
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496b38
mov esi, dword [eax + 4]
jmp 0x496b3b
lea esi, [eax + 4]
push 0
push ecx
mov ecx, esp
push 0x4e0c80
call fcn.00404030
push ecx
mov ecx, esp
push edi
call fcn.00404030
push esi
lea ecx, [ebp - 0x14]
call fcn.004968fe
push eax
call fcn.004965ea
jmp 0x496ae8
push str.deleteval
lea ecx, [ebp + 8]
call fcn.0040b6b0
test eax, eax
jne 0x496bf1
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
mov ecx, edi
cdq
idiv ecx
cmp eax, 4
jne 0x496bf1
push 3
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496b98
mov ebx, dword [eax + 4]
jmp 0x496b9b
lea ebx, [eax + 4]
push 2
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], 8
jb 0x496baf
mov edi, dword [eax + 4]
jmp 0x496bb2
lea edi, [eax + 4]
push 1
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], 8
jb 0x496bc6
mov esi, dword [eax + 4]
jmp 0x496bc9
lea esi, [eax + 4]
push 0
push ecx
mov ecx, esp
push ebx
call fcn.00404030
push ecx
mov ecx, esp
push edi
call fcn.00404030
push esi
lea ecx, [ebp - 0x14]
call fcn.004968fe
push eax
call fcn.0042cc70
jmp 0x496ae8
push str.writevalue
lea ecx, [ebp + 8]
call fcn.0040b6b0
test eax, eax
jne 0x496d8b
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
cdq
idiv edi
cmp eax, 6
jne 0x496d8b
push 4
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496c2b
mov eax, dword [eax + 4]
jmp 0x496c2e
add eax, 4
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str.REG_DWORD
push eax
call edi
mov ecx, esi
test eax, eax
jne 0x496cd4
push 5
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496c57
mov eax, dword [eax + 4]
jmp 0x496c5a
add eax, 4
push 3
mov ecx, esi
mov dword [ebp - 4], eax
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496c70
mov ebx, dword [eax + 4]
jmp 0x496c73
lea ebx, [eax + 4]
push 2
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], 8
jb 0x496c87
mov edi, dword [eax + 4]
jmp 0x496c8a
lea edi, [eax + 4]
push 1
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], 8
jb 0x496c9e
mov esi, dword [eax + 4]
jmp 0x496ca1
lea esi, [eax + 4]
push dword [ebp - 4]
call fcn.004a2fdd
pop ecx
push eax
push 0
push ecx
mov ecx, esp
push ebx
call fcn.00404030
push ecx
mov ecx, esp
push edi
call fcn.00404030
push esi
lea ecx, [ebp - 0x14]
call fcn.004968fe
push eax
call fcn.0042cc50
pop ecx
jmp 0x496ae8
push 4
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496ce5
mov eax, dword [eax + 4]
jmp 0x496ce8
add eax, 4
push str.REG_SZ
push eax
call edi
test eax, eax
jne 0x496d8b
push 5
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496d0b
mov eax, dword [eax + 4]
jmp 0x496d0e
add eax, 4
push 3
mov ecx, esi
mov dword [ebp - 4], eax
call fcn.00496521
cmp dword [eax + 0x18], ebx
jb 0x496d24
mov ebx, dword [eax + 4]
jmp 0x496d27
lea ebx, [eax + 4]
push 2
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], 8
jb 0x496d3b
mov edi, dword [eax + 4]
jmp 0x496d3e
lea edi, [eax + 4]
push 1
mov ecx, esi
call fcn.00496521
cmp dword [eax + 0x18], 8
jb 0x496d52
mov esi, dword [eax + 4]
jmp 0x496d55
lea esi, [eax + 4]
push 0
push dword [ebp - 4]
push 0
push ecx
mov ecx, esp
push ebx
call fcn.00404030
push ecx
mov ecx, esp
push edi
call fcn.00404030
push esi
lea ecx, [ebp - 0x14]
call fcn.004968fe
push eax
call fcn.0040f670
add esp, 0xc
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], eax
call fcn.0040faf0
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00404d60
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 4