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

Disassembly:
push ebp
lea ebp, [esp - 0x6d0]
sub esp, 0x750
mov eax, dword [0x1001cf10]
xor eax, ebp
mov dword [ebp + 0x6cc], eax
mov eax, dword [ebp + 0x6d8]
push ebx
mov dword [ebp - 0x7c], eax
push esi
lea eax, [ebp + 0x1f8]
mov dword [ebp - 0x6c], eax
push edi
lea eax, [ebp + 0x160]
mov esi, ecx
xor ebx, ebx
push eax
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp + 0x160], 0x94
call dword [sym.imp.kernel32.dll_GetVersionExA]
cmp dword [ebp + 0x164], 6
sbb edi, edi
inc edi
je 0x100069d3
lea eax, [ebp - 0x50]
push eax
call fcn.10006844
pop ecx
cmp eax, 0xffffffff
je 0x10006c8d
cmp eax, 0xffffff80
je 0x100069d3
cmp word [ebp + 0x5c], bx
je 0x10006930
cmp byte [ebp + 0x15c], bl
je 0x10006918
mov eax, dword [ebp - 0x50]
push esi
call fcn.100067f8
pop ecx
push 3
pop eax
jmp 0x10006cf9
push pe_nt_image_headers32
lea eax, [ebp + 0x5c]
push eax
push esi
call dword [sym.imp.msvcr100.dll_wcstombs]
add esp, 0xc
jmp 0x10006cf6
cmp word [ebp - 0x4c], bx
jne 0x100069d3
lea eax, [ebp - 0x54]
push eax
push 0x20019
push ebx
push str.SystemCurrentControlSetControlTimeZoneInformation
push 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
jne 0x10006c8d
mov edi, dword [sym.imp.advapi32.dll_RegQueryValueExA]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x64]
push eax
push ebx
push str.DynamicDaylightTimeDisabled
push dword [ebp - 0x54]
mov dword [ebp - 0x58], 4
call edi
test eax, eax
jne 0x10006c8d
cmp dword [ebp - 0x68], 1
jne 0x100069ab
mov eax, dword [ebp - 0x50]
push esi
call fcn.100067f8
pop ecx
push 3
pop esi
push dword [ebp - 0x54]
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, esi
jmp 0x10006cf9
lea eax, [ebp - 0x58]
push eax
push esi
lea eax, [ebp - 0x64]
push eax
push ebx
push str.TimeZoneKeyName
push dword [ebp - 0x54]
mov dword [ebp - 0x58], pe_nt_image_headers32
call edi
test eax, eax
jne 0x10006c8d
xor esi, esi
inc esi
jmp 0x1000699b
lea eax, [ebp + 0x1f4]
push eax
call dword [sym.imp.kernel32.dll_GetTimeZoneInformation]
cmp eax, 0xffffffff
je 0x10006c8d
lea eax, [ebp - 0x54]
push eax
mov esi, 0x20019
push esi
push ebx
push str.SystemCurrentControlSetControlTimeZoneInformation
push 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
jne 0x10006ada
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x64]
push eax
push ebx
push str.DynamicDaylightTimeDisabled
push dword [ebp - 0x54]
mov dword [ebp - 0x58], 4
call dword [sym.imp.advapi32.dll_RegQueryValueExA]
cmp eax, ebx
je 0x10006a58
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x64]
push eax
push ebx
push str.DisableAutoDaylightTimeSet
push dword [ebp - 0x54]
mov dword [ebp - 0x58], 4
call dword [sym.imp.advapi32.dll_RegQueryValueExA]
cmp eax, ebx
jne 0x10006a96
cmp dword [ebp - 0x60], 1
jne 0x10006a6c
cmp word [ebp + 0x28e], bx
je 0x10006a6c
xor eax, eax
inc eax
jmp 0x10006a6e
xor eax, eax
cmp edi, ebx
je 0x10006a7b
xor eax, eax
cmp dword [ebp - 0x60], 1
sete al
cmp eax, ebx
je 0x10006a96
push dword [ebp - 0x54]
call dword [sym.imp.advapi32.dll_RegCloseKey]
push dword [ebp - 0x70]
mov eax, dword [ebp + 0x1f4]
jmp 0x1000690a
cmp word [ebp + 0x1f8], bx
jne 0x10006ad1
mov edx, dword [ebp - 0x54]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp + 0x2cc]
push eax
lea edi, [ebp - 0x64]
xor ecx, ecx
mov dword [ebp - 0x58], 0x200
call fcn.1000673f
pop ecx
pop ecx
test eax, eax
jne 0x10006c8d
lea eax, [ebp + 0x2cc]
mov dword [ebp - 0x6c], eax
push dword [ebp - 0x54]
call dword [sym.imp.advapi32.dll_RegCloseKey]
lea eax, [ebp - 0x54]
push eax
push esi
push ebx
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionTime_Zones
mov edi, 0x80000002
push edi
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
je 0x10006b12
lea eax, [ebp - 0x54]
push eax
push esi
push ebx
push str.SOFTWAREMicrosoftWindowsCurrentVersionTime_Zones
push edi
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
je 0x10006b12
xor eax, eax
jmp 0x10006cf9
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x74]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x54]
call dword [sym.imp.advapi32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x10006c8d
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x58], ebx
cmp dword [ebp - 0x74], ebx
jbe 0x10006cb5
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x5cc]
push eax
push dword [ebp - 0x58]
mov edi, pe_nt_image_headers32
push dword [ebp - 0x54]
mov dword [ebp - 0x60], edi
call dword [sym.imp.advapi32.dll_RegEnumKeyExA]
test eax, eax
jne 0x10006c8d
lea eax, [ebp - 0x5c]
push eax
push esi
push ebx
lea eax, [ebp + 0x5cc]
push eax
push dword [ebp - 0x54]
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
jne 0x10006c8d
mov edx, dword [ebp - 0x5c]
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x4cc]
push eax
mov dword [ebp - 0x60], edi
push 2
lea edi, [ebp - 0x64]
pop ecx
call fcn.1000673f
pop ecx
pop ecx
test eax, eax
jne 0x10006c67
push dword [ebp - 0x6c]
lea eax, [ebp + 0x4cc]
push eax
call dword [sym.imp.msvcr100.dll_wcscmp]
pop ecx
pop ecx
test eax, eax
jne 0x10006c4d
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x2a0]
push eax
mov eax, edi
push eax
push ebx
push 0x100144a4
push dword [ebp - 0x5c]
mov dword [ebp - 0x78], 0x2c
call dword [sym.imp.advapi32.dll_RegQueryValueExA]
test eax, eax
jne 0x10006ca4
mov eax, dword [ebp + 0x1f4]
cmp eax, dword [ebp + 0x2a0]
jne 0x10006c4d
push 0x10
lea eax, [ebp + 0x2ac]
push eax
lea eax, [ebp + 0x238]
push eax
call sub.msvcr100.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10006c4d
mov eax, dword [ebp + 0x29c]
cmp eax, ebx
je 0x10006ca4
cmp eax, dword [ebp + 0x2a8]
jne 0x10006c4d
push 0x10
lea eax, [ebp + 0x2bc]
push eax
lea eax, [ebp + 0x28c]
push eax
call sub.msvcr100.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10006ca4
push dword [ebp - 0x5c]
call dword [sym.imp.advapi32.dll_RegCloseKey]
inc dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x74]
jb 0x10006b40
jmp 0x10006cb5
push dword [ebp - 0x5c]
call dword [sym.imp.advapi32.dll_RegCloseKey]
lea eax, [ebp - 0x5c]
push eax
push esi
push ebx
push dword [ebp - 0x6c]
mov dword [ebp - 0x68], 1
push dword [ebp - 0x54]
call dword [sym.imp.advapi32.dll_RegOpenKeyExW]
test eax, eax
je 0x10006cb5
cmp dword [ebp - 0x54], ebx
je 0x10006b0b
push dword [ebp - 0x54]
call dword [sym.imp.advapi32.dll_RegCloseKey]
jmp 0x10006b0b
lea eax, [ebp + 0x5cc]
push eax
push dword [ebp - 0x70]
call sub.msvcr100.dll_strcpy
pop ecx
pop ecx
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x7c]
lea eax, [ebp - 0x64]
push eax
push ebx
push str.MapID
push dword [ebp - 0x5c]
mov dword [ebp - 0x80], 0x20
call dword [sym.imp.advapi32.dll_RegQueryValueExA]
push dword [ebp - 0x5c]
mov esi, dword [sym.imp.advapi32.dll_RegCloseKey]
mov edi, eax
call esi
push dword [ebp - 0x54]
call esi
cmp edi, ebx
je 0x10006cf6
cmp dword [ebp - 0x68], 1
je 0x10006b0b
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x6cc]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100122d0
add ebp, 0x6d0
leave
ret