Function at 0x10059ba
Capabilities:
Check os version
Get file version info
Identify system language via api

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x360
mov eax, dword [0x1009030]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
xor ebx, ebx
push 0x118
lea eax, [ebp - 0x344]
push ebx
push eax
mov edi, ecx
mov dword [ebp - 0x34c], ebx
mov dword [ebp - 0x35c], ebx
mov dword [ebp - 0x348], ebx
call sub.msvcrt.dll_memset
add esp, 0xc
push dword [0x10092fc]
push 0xc9
push esi
call dword [0x10092c4]
test eax, eax
jne 0x1005a31
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x1005a26
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x34c], eax
jmp 0x1005dc8
lea eax, [ebp - 0x348]
push eax
mov dword [ebp - 0x348], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x1005adb
push dword [ebp - 0x344]
push 0x12
push esi
call dword [0x10092c4]
push dword [ebp - 0x340]
push 0x13
push esi
call dword [0x10092c4]
movzx eax, word [ebp - 0x234]
push eax
push 0x15
push esi
call dword [0x10092c4]
movzx eax, word [ebp - 0x232]
push eax
push 0x16
push esi
call dword [0x10092c4]
push dword [ebp - 0x33c]
push 0x14
push esi
call dword [0x10092c4]
lea eax, [ebp - 0x358]
push eax
movzx eax, word [ebp - 0x232]
push eax
movzx eax, word [ebp - 0x234]
push eax
push dword [ebp - 0x340]
push dword [ebp - 0x344]
call dword [sym.imp.KERNEL32.dll_GetProductInfo]
test eax, eax
je 0x1005adb
push dword [ebp - 0x358]
push 0x17
push esi
call dword [0x10092c4]
push esi
call fcn.010047b3
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, ax
push eax
push 0x3ee
push esi
call dword [0x10092c4]
movzx eax, word [edi]
push eax
push 0x144
push esi
call dword [0x10092c4]
push dword [edi + 0x14]
push 0x13f
push esi
call dword [0x10092c4]
push esi
call fcn.01004683
lea eax, [ebp - 0x350]
push eax
call fcn.01002801
test eax, eax
jne 0x1005b3e
push dword [ebp - 0x350]
push 0xc6b
push esi
call dword [0x10092c4]
movzx eax, word [edi]
cmp eax, 6
je 0x1005b4f
cmp eax, 9
je 0x1005b4f
push 0x20
jmp 0x1005b51
push 0x40
push 0x147
push esi
call dword [0x10092c4]
call sub.POWRPROF.dll_PowerDeterminePlatformRole
dec eax
dec eax
neg eax
sbb eax, eax
inc eax
push eax
push 0x25f
push esi
call dword [0x10092c4]
push dword [0x10092fc]
push esi
call dword [0x10092b4]
test eax, eax
je 0x1005a12
push 0x208
lea eax, [ebp - 0x20c]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x104
lea eax, [ebp - 0x20c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jbe 0x1005c3c
lea eax, [ebp - 0x350]
push eax
lea eax, [ebp - 0x20c]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov ebx, eax
test ebx, ebx
jbe 0x1005c30
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
je 0x1005c3c
push edi
push ebx
push 0
lea eax, [ebp - 0x20c]
push eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x1005c3c
lea eax, [ebp - 0x360]
push eax
lea eax, [ebp - 0x35c]
push eax
push 0x100122c
push edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x1005c3c
mov eax, dword [ebp - 0x35c]
push dword [eax + 0x14]
push dword [eax + 0x10]
push esi
call dword [0x10092f0]
jmp 0x1005c3c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x358], eax
lea eax, [ebp - 0x21c]
push eax
call dword [0x10092d4]
test eax, eax
jne 0x1005c6b
lea eax, [ebp - 0x21c]
push eax
call dword [0x10092c8]
test eax, eax
je 0x1005c79
lea eax, [ebp - 0x21c]
push eax
call dword [0x10092cc]
lea eax, [ebp - 0x21c]
push eax
push esi
call dword [0x10092d0]
lea eax, [ebp - 0x22c]
push eax
call dword [0x10092ec]
test eax, eax
jne 0x1005ca8
lea eax, [ebp - 0x22c]
push eax
call dword [0x10092c8]
test eax, eax
je 0x1005cb6
lea eax, [ebp - 0x22c]
push eax
call dword [0x10092e8]
lea eax, [ebp - 0x22c]
push eax
push esi
call dword [0x10092e4]
lea eax, [ebp - 0x350]
push eax
push 4
pop edi
push edi
push 0x1001d28
push 0x1001cb0
call fcn.010049a1
test eax, eax
jl 0x1005ce6
push dword [ebp - 0x350]
push 0xce7
push esi
call dword [0x10092c4]
lea eax, [ebp - 0x354]
push eax
call fcn.010033ce
test eax, eax
jne 0x1005d00
mov dword [ebp - 0x354], 2
push dword [ebp - 0x354]
push 0x13e
push esi
call dword [0x10092c4]
push dword [0x1009090]
push 0x18c9
push esi
call dword [0x10092c4]
push dword [0x1009094]
push 0x18ca
push esi
call dword [0x10092c4]
push dword [0x1009098]
push 0x18cb
push esi
call dword [0x10092c4]
push dword [0x100909c]
push 0x18cd
push esi
call dword [0x10092c4]
push dword [0x10090a0]
push 0x18cc
push esi
call dword [0x10092c4]
cmp dword [0x1009080], 0
je 0x1005d83
cmp dword [0x1009084], 0
je 0x1005d83
xor eax, eax
inc eax
jmp 0x1005d85
xor eax, eax
mov ecx, dword [0x1009060]
add ecx, ecx
or ecx, eax
add ecx, ecx
or ecx, dword [0x1009064]
push ecx
push 0x18c8
push esi
call dword [0x10092c4]
push dword [0x100907c]
push 0x18ce
push esi
call dword [0x10092c4]
push dword [0x1009078]
push 0x18fd
push esi
call dword [0x10092c4]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x34c]
pop edi
xor ecx, ebp
pop ebx
call fcn.01006849
leave
ret